Устаревшее: preg_replace(): модификатор /e устарел, вместо него используйте 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 ответ
Решение
Казимир прав... это 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