Удаление частей файла с помощью php

После использования file_get_contents Чтобы записать в HTML-файл, мне нужно удалить определенные части содержимого этого файла, потому что пути к CSS и изображения изменились.

Итак, у меня есть строки, как показано ниже:

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

Я хотел бы удалить часть: '/Elements/' из этих двух строк и другие, чтобы у меня были правильные пути.

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.

Удачи

А в чем конкретно твоя проблема? Просто используйте str_replace или preg_replace (используйте последнее, только если вам нужны регулярные выражения, т.е. если это не простой поиск и замена) в строке, которую вы получили из file_get_contents, и сохраните ее обратно на диск.

то есть.

$text = file_get_contents("yourfile.html");
$text = str_replace("/Elements/", "", $text);
file_put_contents("yourfile.html", $text);
Другие вопросы по тегам