php preg_replace遇到无法匹配的情况,求助原因

php preg_replace替换代码如下

$_POST['content'] = preg_replace('/<\s*img(.*)'.preg_quote($value['name']).'(.*)>/iUs', '<img src="'. $attach['bigimg'] .'" />', $_POST['content']);

现遇到一种情况无法匹配,自己的知识能力找不到原因,求解惑和解决方法

$_POST['content']如下:

<p class="f_center"><img alt="广西上万吨柿饼遭非法染色被指上头有人无人监管" src="data/attachment/portal/201810/21/201810thxuzgsx0zl.jpeg" style="margin: 0px auto; display: block;" /></p>

$value['name']如下

data/attachment/portal/201810/21/201810thxuzgsx0zl.jpeg

$attach['bigimg']如下:

data/attachment/portal/201810/21/150051az6bl1ialal1sqay.jpeg

为什么匹配不了呢?还请大神解惑,感激不尽!

阅读 1.6k
1 个回答
新手上路,请多包涵

注意查看错误日志,
由Unknown modifier 'a' 定位问题出现在正则表达式上。

检查正则表达式,定位 a 出现位置,data/attachment a 出现在此处,考虑 符号 / 未被转义

查手册 preg_quote 手册中有说明 / 不是正则表达式特殊字符, 此处 / 只是我们模式的定界符,也可以指定为#

故此 preg_quote 需传入第二个参数,详情参考 preg_quote

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题