preg_replace在php5中主要用于处理url中后面参数替换清除的作用,具体使用方法如下:
$url = preg_replace('/([?&])src=[^&]+(&?)/e', '"$2"==""?"":"$1"', $url);
但preg_replace在PHP7来使用却出错了报错了,经过查询PHP7帮助文件后了解到,e 修饰符因为存在安全隐患 自 5.3 开始就已经标记为了待移除的内容。转而接替的是 preg_replace_callback,此方法第二个参数为一个回调函数,回调函数会自动传入比配的分组作为参数。在回调函数内部通过数组下标访问匹配组。
使用方法如下:
preg_replace_callback('/([?&])src=[^&]+(&?)/', function($matches){
return $matches[2]==""?"":$matches[1];
}, $url);
这样我们就可以在PHP7使用和preg_replace功能相同的preg_replace_callback了。如果你在网站建设过程也遇到这样的问题就来试试这个方法吧。