正则表达式标志

时间:2010-03-18 08:54:52

标签: php regex preg-replace

有人可以解释'e'标志的作用,或者将我链接到某个地方吗?我无法通过谷歌找到任何东西。

示例:

preg_replace("/a(b?)c/e", "search_foo_term('\$1')", $str);

2 个答案:

答案 0 :(得分:7)

  

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的匹配时返回?

答案 1 :(得分:2)

e标志已弃用,主要是出于安全原因。请改用preg_replace_callback