кеширование

AleXXX V. NovikoFF mail at alexxx.ru
Thu Jun 21 13:53:56 MSD 2007


У меня вот так сделано:

<?
$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 at comsys.com.ua> wrote:

SS>  Вам поможет ob_start() & Co. По 5-6 строчек на каждый php файл.
SS> > Да-да, кто бы еще популярно показал, как это делается без переделки уже
SS> > имеющегося php кода...
SS> >   
SS> -- 
SS> Sergey Smitienko
SS> 
SS> 

-- 
AleXXX V. NovikoFF <mail at alexxx.ru>






More information about the nginx-ru mailing list