Как преобразовать preg_replace e в preg_replace_callback?
Хорошо, я немного растерялся. Вот код, который у меня есть сейчас, но я только что узнал e
модификатор устарел. Как мне преобразовать его в preg_replace_callback()
? Я до сих пор не понял это.
$post = preg_replace("/\[code\]([^] )\[\/code\]/e", 'code(\'$1\')', $post);
1 ответ
Решение
Если память не изменяет, preg_replace_callback()
дает вам результаты $match
от preg_match()
в качестве входных данных и ожидает окончательный результат в качестве выходных данных. Таким образом, вам нужно написать функцию, которая возвращает, например, "code('{$match[1]}')"
,
Естественно, это может быть встроенная функция, если php 5.3 является опцией:
preg_replace_callback($regex, function($match) {
// do stuff
return $stuff;
}, $subject);