1

使用file_get_contents写入 html 文件后,我需要删除此文件内容的某些部分,因为 css 和图像的路径已更改。

所以我有如下几行:

 <link href="/Elements/css/main.css" rel="stylesheet" type="text/css">
  <image src="/Elements/images/image1.gif" />

我想删除这两行的:'/Elements/' 部分,以及其他部分,以便我有正确的路径。

4

2 回答 2

3

你的问题到底是什么?只需对从 file_get_contents 获得的字符串使用str_replacepreg_replace(仅在需要正则表达式时使用后者,即,如果它不是简单的搜索和替换),并将其保存回磁盘。

IE。

$text = file_get_contents("yourfile.html");
$text = str_replace("/Elements/", "", $text);
file_put_contents("yourfile.html", $text);
于 2010-08-10T07:30:52.807 回答
2

我这样做一次是为了编辑 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。

祝你好运

于 2010-08-10T08:47:22.560 回答