如何将 preg_replace e 转换为 preg_replace_callback?
Posted
技术标签:
【中文标题】如何将 preg_replace e 转换为 preg_replace_callback?【英文标题】:How to convert preg_replace e to preg_replace_callback? 【发布时间】:2013-04-28 08:36:08 【问题描述】:好的,所以我有点困惑。这是我现在拥有的代码,但我刚刚发现 e
修饰符已被弃用。如何将其转换为preg_replace_callback()
?我还没弄明白。
$post = preg_replace("/\[code\]([^] )\[\/code\]/e", 'code(\'$1\')', $post);
【问题讨论】:
这个问题已经添加到Stack Overflow Regular Expression FAQ的“修饰符”下。 【参考方案1】:如果没记错的话,preg_replace_callback()
会为您提供来自preg_match()
的$match
的结果作为输入,并期望最终结果作为输出。所以你需要编写一个返回例如的函数"code('$match[1]')"
.
如果 php 5.3 是一个选项,它自然可以是一个内联函数:
preg_replace_callback($regex, function($match)
// do stuff
return $stuff;
, $subject);
【讨论】:
非常感谢,帮了大忙。我会在允许的时候接受。以上是关于如何将 preg_replace e 转换为 preg_replace_callback?的主要内容,如果未能解决你的问题,请参考以下文章
php 将 preg_replace 转换为 preg_replace_callback
将preg_replace()改写为preg_replace_callback()
[PHP] PHP7已经删除了preg_replace的e修饰符