创建模式以替换所有脚本源

时间:2014-11-12 20:51:39

标签: php regex preg-replace

如何创建一个模式,用另一个字符串替换php文档中的所有脚本源?

例如,我们有$haystack = '<script src="oldscript.js"></script>';

我们应该这样做$haystack = preg_replace('/src="[a-zA-Z0-9]{1,250}"/', 'myscript.js', $haystack);

但这不起作用。我做错了什么?还是有另一种方法可以做到这一点吗?

2 个答案:

答案 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);

Live demo