用php删除文件的一部分

时间:2010-08-10 07:23:26

标签: php file writing

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

所以我的行如下:

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

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

2 个答案:

答案 0 :(得分:3)

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

$text = file_get_contents("yourfile.html");
$text = str_replace("/Elements/", "", $text);
file_put_contents("yourfile.html", $text);

答案 1 :(得分: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。

祝你好运