Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用php删除文件的一部分_Php_File_Writing - Fatal编程技术网

用php删除文件的一部分

用php删除文件的一部分,php,file,writing,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/”部分和其他部分,这样我就有了正确的路径。您到底有

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

因此,我有以下几行:

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

我想删除这两行中的:“/Elements/”部分和其他部分,这样我就有了正确的路径。

您到底有什么问题?如果你需要正则表达式,也就是说,如果不是简单的搜索和替换从文件获取的字符串,只需使用或使用正则表达式,然后将其保存回磁盘


你到底有什么问题?如果你需要正则表达式,也就是说,如果不是简单的搜索和替换从文件获取的字符串,只需使用或使用正则表达式,然后将其保存回磁盘


我曾经这样做过,用于编辑绑定区域文件。最好的解决方案是将文件读入一个大数组,找到要删除的行。取消设置或编辑这些行,并将数组推回到文件中

以下是将文件读入数组的方式:

$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_替换


祝你好运

我曾经这样做过一次,用于编辑绑定区域文件。最好的解决方案是将文件读入一个大数组,找到要删除的行。取消设置或编辑这些行,并将数组推回到文件中

以下是将文件读入数组的方式:

$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_替换



祝你好运

我能找到的最简单的解决方案是下载文件,然后使用dreamweaver或您选择的其他编辑器进行查找和替换。我认为他只有一个文件用于该操作……令人惊讶的是,有些人似乎更喜欢复杂的操作方式,当一个简单的解决方案就足够了,或者你忘了提到一些细节,使复杂的方式更加相关。我能找到的最简单的解决方案是下载文件,并使用dreamweaver或你选择的其他编辑器进行查找和替换。我不认为他只有一个文件用于该操作……有些人是多么的惊讶当一个简单的解决方案就足够了,或者你忘了提到一些细节,使复杂的方式更相关时,你似乎更喜欢用复杂的方式来做事情。如果文件包含的不仅仅是所显示的路径,那么实际上一个接一个地替换路径是有意义的,例如str_replace/Elements/css/main.css,/css/main.css,$html;以防止在其他路径中意外移除。如果他只想更改references href、img src等中使用的路径,那么我不会逐一更改它们,而是使用DOM解析器,这对我来说更有意义。但由于他基本上要求进行简单的搜索和替换,我想这正是他所需要的…是的,我想自己建议使用DOM解析器,但用例似乎太简单了,无法真正需要它。与其重新打开并保存回磁盘,使用文件内容时是否可以从原始文件中删除?您希望如何在不保存这些更改的情况下保留这些更改?因此,不,在不将更改保存回磁盘的情况下,您无法删除它们并保留更改。如果文件包含的不仅仅是显示的路径,则可以逐个替换路径,例如str_replace/Elements/css/main.css、/css/main.css、$html;以防止在其他路径中意外移除。如果他只想更改references href、img src等中使用的路径,那么我不会逐一更改它们,而是使用DOM解析器,这对我来说更有意义。但由于他基本上要求进行简单的搜索和替换,我想这正是他所需要的…是的,我想自己建议使用DOM解析器,但用例似乎太简单了,无法真正需要它。与其重新打开并保存回磁盘,使用文件内容时是否可以从原始文件中删除?您希望如何在不保存这些更改的情况下保留这些更改?因此,不,如果不将更改保存回磁盘,就无法删除它们并保留更改。如果只需一次性读取文件,为什么还要麻烦将它们读取到阵列中呢,替换相关部分并保存修改后的文件。因为这被证明是一种更安全的方法,因为您可以检查每一行,而不是用操作处理整个文件。这在实践中被证明是有问题的。当您可以一次性读取文件、替换相关部分并保存修改后的文件时,为什么还要麻烦将它们读取到数组中呢?因为这被证明是一种更安全的方法,因为您可以检查每一行,而不是通过操作处理整个文件。事实证明,这在实践中是有问题的。