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

verfaa

Профессор
Регистрация
29 Янв 2007
Сообщения
417
Реакции
49
Есть кешированные html страницы на хостинге. Необходимо их выводить в браузер пользователя, для чего используется такой код:

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

Но теперь появилась задача: в определённых случаях редактировать кешированный файл перед выводом в браузер пользователя. Т.е. нужно выполнить подобное:
Код:
    if($dh = @fopen(@$cachefile, "r"))
    {
        str_replace("%body%", "black", $dh); // Заменить часть контента
        fpassthru($dh);
        exit;
    }
Как это лучше всего сделать?
 
Ночи бессонной =)
Опишите всю ситуёвину более глобально.... одна голова хорошо, две лучше, три мутант, 4 уже нейроразум.
Извиняюсь за сарказм.
Не проще ли сделать проверку на 304 редирект (Last-Modified) и тд?
 
Последнее редактирование:
Есть кешированные html страницы на хостинге. Необходимо их выводить в браузер пользователя, для чего используется такой код:

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

Но теперь появилась задача: в определённых случаях редактировать кешированный файл перед выводом в браузер пользователя. Т.е. нужно выполнить подобное:
Код:
    if($dh = @fopen(@$cachefile, "r"))
    {
        str_replace("%body%", "black", $dh); // Заменить часть контента
        fpassthru($dh);
        exit;
    }
Как это лучше всего сделать?

str_replace это очень ресурсонакладно. Попробуйте шаблонизатор Smarty для этой задачи
На двух пальцах это будет выглядеть так:
1. описываете шаблон 'index.tpl'
Код:
<html>
...
<body bgcolor="{body_color}">
...
2. подключаете смарти в PHP коде и передаете
$smarty = new Smarty;
$smarty->assign('bgcolor', 'black');
$smarty->display('index.tpl');

Smarty компилирует шаблоны сама и уже откомпилированные шаблоны весьа быстро работают.
Поищите документацию как это использовать. Это будет хорошим стилем программирования на PHP
 
str_replace это очень ресурсонакладно. Попробуйте шаблонизатор Smarty для этой задачи
На двух пальцах это будет выглядеть так:
1. описываете шаблон 'index.tpl'
Код:
<html>
...
<body bgcolor="{body_color}">
...
2. подключаете смарти в PHP коде и передаете
$smarty = new Smarty;
$smarty->assign('bgcolor', 'black');
$smarty->display('index.tpl');

Smarty компилирует шаблоны сама и уже откомпилированные шаблоны весьа быстро работают.
Поищите документацию как это использовать. Это будет хорошим стилем программирования на PHP
Я думаю автор не имел в виду создание измененых шаблонов с помощью чего-либо, а пишет просто про чистку кеша прежде чем скармливать страницу.
То есть как я понял задачу: Мы имеем страницу, которую пользователь уже ранее открывал, естественно она закешировалась браузером и при следующем её открытии пользователь увидит снова тот же контент (без изменений), хотя по факту мы его изменили. Соответственно нам надо сбросить кеш для пользователя, чтобы он увидел актуальную инфу. Или я не верно понимаю задачу???
 
Назад
Сверху