2013-05-03 39 views
2

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

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

这个问题已经被添加到[堆栈溢出正则表达式FAQ](http://stackoverflow.com/a/22944075/2736496),在“修饰符”下。 – aliteralmind 2014-04-10 00:38:38

回答

6

如果没记错,preg_replace_callback()给你一个$matchpreg_match()结果作为输入,并期望最终结果为输出。所以你需要编写一个函数返回例如"code('{$match[1]}')"

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

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

非常感谢,它帮助了很多。我会接受,当它让我。 – Jake 2013-05-03 21:06:06

相关问题