如何将preg_replace e转换为preg_replace_callback?

Jak*_*ake 2 php regex preg-replace preg-replace-callback

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

$post = preg_replace("/\[code\]([^] )\[\/code\]/e", 'code(\'$1\')', $post);
Run Code Online (Sandbox Code Playgroud)

Den*_*rdy 6

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

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

preg_replace_callback($regex, function($match) {
  // do stuff
  return $stuff;
}, $subject);
Run Code Online (Sandbox Code Playgroud)