Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[2]: кеширование
У меня вот так сделано:
<?
$fp=fopen("portal.log", "r"); // открыли время последнего изменения
$r=trim(fgets($fp, 11));
fclose($fp);
if(time()-$r<60){ // 1 минута
echo implode("", file("portal.txt")); // выдали кеш юзеру
echo "\n\n<!-- FROM CACHE -->";
}else{
set_time_limit(60);
ignore_user_abort(true); // чтобы кеш не сломался
ob_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
тра-ля-ля что-то тут генерится и т.д.
....
</HTML>
<?
$out=ob_get_contents();
ob_end_clean();
// сохранили кеш
$fp=fopen("portal.txt", "w");
fputs($fp, $out);
fclose($fp);
// записали время сохранения
$fp=fopen("portal.log", "w");
$r=fputs($fp, time());
fclose($fp);
};
?>
Собственно решение "в лоб" - но снизило нагрузку раз в 10, страница
посещаемая...
On Thu, 21 Jun 2007 12:25:09 +0300
Sergey Smitienko <hunter@xxxxxxxxxxxxx> wrote:
SS> Вам поможет ob_start() & Co. По 5-6 строчек на каждый php файл.
SS> > Да-да, кто бы еще популярно показал, как это делается без переделки уже
SS> > имеющегося php кода...
SS> >
SS> --
SS> Sergey Smitienko
SS>
SS>
--
AleXXX V. NovikoFF <mail@xxxxxxxxx>
|