pre_replace_callback使用正则回调来匹配字符串

将下面html代码中的js内容过滤掉。

pre_replace_callback使用正则回调来匹配字符串_第1张图片
Paste_Image.png

这个个问题,很容易写出下面代码:

$html = preg_replace('~.+~U', '', $html);

但执行的时候发现并没有过滤掉js代码。
原因是点号(.)元字符匹配除换行符以外的任意字符。js代码是多行的,所以用点号无法匹配,这个坑很浅,我却掉进去了。
解决方法:使用模式修饰符s,此修饰符可以让点号匹配换行符。

$html = preg_replace('~.+~Us', '', $html);

你可能感兴趣的:(pre_replace_callback使用正则回调来匹配字符串)