src/FreeFW/Tools/PBXString.php
public static function parse($p_string, $p_data = array(), $p_regex = null)
    {
        if (! is_array($p_data)) {
            if (is_object($p_data) && method_exists($p_data, '__toArray')) {
                $datas = $p_data->__toArray();
            }
        } else {
            $datas = $p_data;
        }
        if ($p_regex === null) {
            $p_regex = self::REGEX_PARAM_PLACEHOLDER;
        }
        if (0 < preg_match_all($p_regex, $p_string, $matches, PREG_SET_ORDER)) {
            foreach ($matches as $match) {
                $replace = '';
                if (array_key_exists($match[1], $datas)) {
                    $replace = $datas[$match[1]];
                }
                $p_string = str_replace(
                    $match[0],
                    $replace,
                    $p_string
                );
            }

            return self::parse($p_string, $datas, $p_regex);
        }

        return $p_string;
    }
public static function parse($p_string, $p_data = array(), $p_regex = null)
    {
        if (! is_array($p_data)) {
            if (is_object($p_data) && method_exists($p_data, '__toArray')) {
                $datas = $p_data->__toArray();
            }
        } else {
            $datas = $p_data;
        }
        if ($p_regex === null) {
            $p_regex = self::REGEX_PARAM_PLACEHOLDER;
        }
        if (0 < preg_match_all($p_regex, $p_string, $matches, PREG_SET_ORDER)) {
            foreach ($matches as $match) {
                $replace = '';
                if (array_key_exists($match[1], $datas)) {
                    $replace = $datas[$match[1]];
                }
                $p_string = str_replace(
                    $match[0],
                    $replace,
                    $p_string
                );
            }

            return self::parse($p_string, $datas, $p_regex);
        }

        return $p_string;
    }
public static function parse ( $ p_string , $ p_data = array ( ) , $ p_regex = null ) { if ( ! is_array ( $ p_data ) ) { if ( is_object ( $ p_data ) && method_exists ( $ p_data , '__toArray' ) ) { $ datas = $ p_data -> __toArray ( ) ; } } else { $ datas = $ p_data ; } if ( $ p_regex === null ) { $ p_regex = self :: REGEX_PARAM_PLACEHOLDER ; } if ( 0 < preg_match_all ( $ p_regex , $ p_string , $ matches , PREG_SET_ORDER ) ) { foreach ( $ matches as $ match ) { $ replace = '' ; if ( array_key_exists ( $ match [ 1 ] , $ datas ) ) { $ replace = $ datas [ $ match [ 1 ] ] ; } $ p_string = str_replace ( $ match [ 0 ] , $ replace , $ p_string ) ; } return self :: parse ( $ p_string , $ datas , $ p_regex ) ; } return $ p_string ; }
Parse et remplace suivant les marqueur

@param string $p_string
@param array  $p_data
@param string $p_regex

@return string
Parse et remplace suivant les marqueur