我需要一些帮助。因为不推荐使用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]
);
}
答案 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