有人可以解释'e'标志的作用,或者将我链接到某个地方吗?我无法通过谷歌找到任何东西。正则表达式标志
实施例:
preg_replace("/a(b?)c/e", "search_foo_term('\$1')", $str);
有人可以解释'e'标志的作用,或者将我链接到某个地方吗?我无法通过谷歌找到任何东西。正则表达式标志
实施例:
preg_replace("/a(b?)c/e", "search_foo_term('\$1')", $str);
E(PREG_REPLACE_EVAL)
如果该改性剂 被设置,preg_replace函数()不正常 替代反向引用在 替换字符串,评估其作为 PHP代码,并使用 替换搜索字符串的结果。单 报价,双引号,反斜杠() 和NULL字符将被 反斜杠代替 反向引用。只有preg_replace() 使用此修饰符;它被其他PCRE功能 忽略。
http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php
因此,考虑这个例子:
preg_replace("/a(b?)c/e", "search_foo_term('\$1')", $str);
整个比赛将是什么search_foo_term更换()时,通过比赛对于B返回? 。
e标志已被弃用,主要是出于安全原因。改为使用preg_replace_callback
。
真棒,谢谢。 – Cam 2010-03-18 08:59:28
此答案已添加到[Stack Overflow Regular Expression FAQ](http://stackoverflow.com/a/22944075/2736496),在“修改器”下。 – aliteralmind 2014-04-10 00:35:25