2
好吧,所以我有点困惑。这里是我现在的代码,但我只是发现e
修饰符已被弃用。我如何将它转换为preg_replace_callback()
?我还没有弄明白。如何将preg_replace e转换为preg_replace_callback?
$post = preg_replace("/\[code\]([^])\[\/code\]/e", 'code(\'$1\')', $post);
好吧,所以我有点困惑。这里是我现在的代码,但我只是发现e
修饰符已被弃用。我如何将它转换为preg_replace_callback()
?我还没有弄明白。如何将preg_replace e转换为preg_replace_callback?
$post = preg_replace("/\[code\]([^])\[\/code\]/e", 'code(\'$1\')', $post);
如果没记错,preg_replace_callback()
给你一个$match
从preg_match()
结果作为输入,并期望最终结果为输出。所以你需要编写一个函数返回例如"code('{$match[1]}')"
。
它可以是内联函数,自然,如果PHP 5.3是一个选项:
preg_replace_callback($regex, function($match) {
// do stuff
return $stuff;
}, $subject);
非常感谢,它帮助了很多。我会接受,当它让我。 – Jake 2013-05-03 21:06:06
这个问题已经被添加到[堆栈溢出正则表达式FAQ](http://stackoverflow.com/a/22944075/2736496),在“修饰符”下。 – aliteralmind 2014-04-10 00:38:38