Как отредактировать файл и вывести в браузер

Есть кешированные html страницы на хостинге. Необходимо их выводить в браузер пользователя, для чего используется такой код:

if($dh = @fopen(@$cachefile, "r"))
{
    fpassthru($dh);
    exit;
}

Но теперь появилась задача: в определённых случаях редактировать кешированный файл перед выводом в браузер пользователя. Т.е. нужно выполнить подобное:

if($dh = @fopen(@$cachefile, "r"))
{
    str_replace("%body%", "black", $dh); // Заменить часть контента
    fpassthru($dh);
    exit;
}

Как это лучше всего сделать?


Ответы (1 шт):

Автор решения: HardlinePeak

Предлагаю использовать:

<?php
$page = @file_get_contents($cachefile);
if ($page === false)
    exit("Ошибка: Не удалось прочитать файл!");
// Замена текста
$page = str_replace("%old_text%", "new text", $page);
// Лично я использую массив для замены множества значений
$arguments = [
    "%old_text_2%" => "new text 2"
];
foreach ($arguments as $key => $value)
    $page = str_replace($key, $value, $page);
echo $page;
→ Ссылка