如何创建一个模式,用另一个字符串替换php文档中的所有脚本源?
例如,我们有$haystack = '<script src="oldscript.js"></script>';
我们应该这样做$haystack = preg_replace('/src="[a-zA-Z0-9]{1,250}"/', 'myscript.js', $haystack);
但这不起作用。我做错了什么?还是有另一种方法可以做到这一点吗?
答案 0 :(得分:0)
您还需要在正则表达式中包含点,并在替换中添加src="..."
:
$haystack = preg_replace('/src="[\w.]{1,250}"/', 'src="myscript.js"', $haystack);
答案 1 :(得分:0)
尝试这个更好的解决方案:
$re = "/(<script.*src=)(\"|')(.*)('|\")/";
$str = "<script type=\"javascript\" src='oldscript.js' ></script>\n<img src='test.jpg' />";
$subst = "\1\2myscript.js\4";
$result = preg_replace($re, $subst, $str, 1);