2

好吧,所以我有点困惑。这是我现在拥有的代码,但我刚刚发现e修饰符已被弃用。如何将其转换为preg_replace_callback()? 我还没有弄明白。

$post = preg_replace("/\[code\]([^] )\[\/code\]/e", 'code(\'$1\')', $post);
4

1 回答 1

6

如果没记错的话,preg_replace_callback()将 a $matchfrom的结果preg_match()作为输入,并期望最终结果作为输出。因此,您需要编写一个返回 eg 的函数"code('{$match[1]}')"

当然,如果 php 5.3 是一个选项,它可以是一个内联函数:

preg_replace_callback($regex, function($match) {
  // do stuff
  return $stuff;
}, $subject);
于 2013-05-03T20:59:37.943 回答