如何将preg_replace e转换为preg_replace_callback?

时间:2013-05-03 20:55:14

标签: php regex preg-replace preg-replace-callback

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

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

1 个答案:

答案 0 :(得分:6)

如果内存服务,preg_replace_callback()会从$match作为输入提供preg_match()的结果,并期望最终结果作为输出。所以你需要编写一个返回的函数,例如"code('{$match[1]}')"

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

preg_replace_callback($regex, function($match) {
  // do stuff
  return $stuff;
}, $subject);