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
为什么匹配不了呢?还请大神解惑,感激不尽!
注意查看错误日志,
由Unknown modifier 'a' 定位问题出现在正则表达式上。
检查正则表达式,定位 a 出现位置,data/attachment a 出现在此处,考虑 符号 / 未被转义
查手册 preg_quote 手册中有说明 / 不是正则表达式特殊字符, 此处 / 只是我们模式的定界符,也可以指定为#
故此 preg_quote 需传入第二个参数,详情参考 preg_quote