不推荐使用:preg_replace():不推荐使用/ e修饰符,而是使用preg_replace_callback

时间:2014-03-10 14:30:56

标签: preg-replace preg-replace-callback

我需要一些帮助。因为不推荐使用preg_replace,所以我必须将所有preg_replace转换为preg_replace_callback ......

function parse_bb_tpl ($part, $args)
{
    // just a replace, with evaluation...
    return preg_replace (
        '/{([^}\s]+)}/e',
        "isset (\$args['\\1']) ? \$args['\\1'] : '';",
        $this->_tpls[$part]
    );
}

1 个答案:

答案 0 :(得分:1)

Casimir是正确的...它是被{depation的e修饰符。 preg_replace_callback非常酷。基本上,你只需要创建一个函数来获得匹配并使用它来进行评估。

$string = 'The bat is batty in the bathroom';

$string = preg_replace_callback('/bat/', 'cool_function', $string);

print $string;

function cool_function($matches) {
    return '<b>'.$matches[0].'</b>';    
}

输出这个:

The <b>bat</b> is <b>bat</b>ty in the <b>bat</b>hroom