新人求教~关于正则的模式修正符e的问题,为啥我感觉没啥用呢?

Tirion1987 2013-06-04 07:59:59
比如这两段代码,匹配字符串中的网址链接

这是使用模式修正符e的:

$urlPattern = "/(www.|https?:\/\/|ftp:\/\/|news:\/\/|telnet:\/\/){1}([^\[\"']+?)(com|net|org)(\/[\w-\.\/\?\%\&\=]*)?/ei";

$url="PHP的地址是:www.php.com";

echo preg_replace($urlPattern, "'\\2'.'\\3'", $url);


这是未使用模式修正符e的:

$urlPattern = "/(www.|https?:\/\/|ftp:\/\/|news:\/\/|telnet:\/\/){1}([^\[\"']+?)(com|net|org)(\/[\w-\.\/\?\%\&\=]*)?/i";

$url="PHP的地址是:www.php.com";

echo preg_replace($urlPattern, '\\2'.'\\3', $url);

输出结果是一样的啊~
都是将www.php.com替换为php.com

我觉得也就是多了层双引号而已呢、、、
反而不用e还感觉更简单一点呢

这个e到底是怎么回事?
...全文
70 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
一起混吧 2013-06-04
  • 打赏
  • 举报
回复
e (PREG_REPLACE_EVAL) 如果这个修饰符设置了, preg_replace() 在进行了对替换字符串的 后向引用替换之后, 将替换后的字符串作为php 代码评估执行(eval 函数方式),并使用执行结果 作为实际参与替换的字符串。单引号、双引号、反斜线(\)和 NULL 字符在 后向引用替换时会被用反斜线转义.

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧