Удаление частей файла с помощью 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);