使用file_get_contents
写入 html 文件后,我需要删除此文件内容的某些部分,因为 css 和图像的路径已更改。
所以我有如下几行:
<link href="/Elements/css/main.css" rel="stylesheet" type="text/css">
<image src="/Elements/images/image1.gif" />
我想删除这两行的:'/Elements/' 部分,以及其他部分,以便我有正确的路径。
你的问题到底是什么?只需对从 file_get_contents 获得的字符串使用str_replace或preg_replace(仅在需要正则表达式时使用后者,即,如果它不是简单的搜索和替换),并将其保存回磁盘。
IE。
$text = file_get_contents("yourfile.html");
$text = str_replace("/Elements/", "", $text);
file_put_contents("yourfile.html", $text);
我这样做一次是为了编辑 BIND 区域文件。最好的解决方案是将文件读入一个大数组,找到要删除的行。取消设置或编辑这些行并将数组推回文件中。
这是您将文件读入数组的方式:
$html = file("something.html");
像这样找到你想要的行:
foreach($html as $key => $line)
{
$html[$key] = str_replace("/Elements/", "", $line);
}
然后将其全部写回文件
$fp=fopen("something.html","w+");
foreach($html as $key => $value)
{
fwrite($fp,$value."\t");
}
如果你知道正则表达式,你也可以研究一下(这就是我使用的)。然后使用 preg_replace。
祝你好运