我正在浏览一个HTML文件,用新文件替换所有对外部文件的引用,但是,有时这会导致错误。
例如:我想在此源代码中将styles.css
的所有实例替换为1.css
,将iestyles.css
的所有实例替换为2.css
:
<html>
<link href="styles.css" />
<link href="iestyles.css" />
</html>
运行str_replace("styles.css", "1.css", $html);
后,源代码如下所示:
<html>
<link href="1.css" />
<link href="ie1.css" />
</html>
因此,当我运行第二个查询时,它不会更改iestyles.css
引用,因为它不再存在。有没有解决的办法?我想我可以发明一个精心设计的正则表达式,但是要考虑很多变量,因为并非所有代码都是格式良好的。
干杯
答案 0 :(得分:3)
只需更改订单:首先将iestyles.css
替换为2.css
,然后将styles.css
替换为1.css
。
如果您确定文件名是href
- attribut中的唯一内容,您还可以包含双引号"
$html = str_replace('"styles.css"', '"1.css"', $html);
$html = str_replace('"iestyles.css"', '"2.css"', $html);
答案 1 :(得分:0)
包括双引号(假设它们都使用双引号)应该有效。
str_replace('"styles.css"', '"1.css"', $html);
答案 2 :(得分:0)
使用preg_replace();
preg_replace('|<link href="styles\.css" />|', '1.css', $html);
或仅在styles
str_replace('"styles.css', '"1.css', $html);
答案 3 :(得分:0)
只需在替换中加入引号。
将"styles.css"
替换为"1.css"
答案 4 :(得分:0)
你可以先改变'iestyles.css'。