PHP - 在文件中查找并替换,删除使用preg_replace找到字符串的整行

时间:2013-10-24 12:45:18

标签: php preg-replace

我正在尝试在文件中进行查找和替换操作,以便擦除找到字符串的行。

这里是sitemap.xml文件的内容:

<urlset>
<url><loc>http://ex.com/jane.htm</loc><lastmod>2013-10-23</lastmod></url>
<url><loc>http://ex.com/test.htm</loc><lastmod>2013-10-24</lastmod></url>
</urlset>`

这是我到目前为止所得到的:

$x=preg_quote('test.htm');
preg_replace("/^.+$x.+\n/",'',file_get_contents('sitemap.xml'));

但它不起作用......

2 个答案:

答案 0 :(得分:1)

从正则表达式中删除^,例如:

/.+$x.+\n/

答案 1 :(得分:1)

作为使用正则表达式的替代方法:

$fileContent = file_get_contents('sitemap.xml');
$stringToBeFound = 'test.htm';
$lines = explode("\n", $fileContent);
$result = array();
foreach($lines as $k => $line){
  if(strpos($line, $stringToBeFound) === false){
    $result[] = $line;
  }
}
echo implode("\n", $result);