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