Кеширование в PHP



В глаза попался интересный проект в котором подглядел интересное решение кеширования, которое нужно запомнить. Я так думаю. Собственно комментировать в коде особо нечего. Кроме того, что в PHP ещё много функций, которых я не знаю :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?
@header('Content-Type: text/html; charset=utf-8');
//error_reporting(E_ALL);
//ini_set('display_errors', 1);
 
// Заносим содержимое в буфер для кеширования
 
$urls=$_SERVER["REQUEST_URI"];
$crc=md5($urls);
 
$modif=time()-@filemtime ("cache/$crc");
 
if ($modif<7200) // если кеш свежее чем 2 часа
{ 
include ("cache/$crc");
exit();
}
 
ob_start (); // Начинаем запись
 
......................................
// Тут  пишем собственно логику страницы
................
 
$cache = ob_get_contents();  // Записываем, что получилось и останавливаем запись.
ob_end_clean (); 
echo $cache;
 
 
$fp = @fopen ("cache/$crc", "w");
@fwrite ($fp, $cache);
@fclose ($fp);
?>

Нет постов по теме.

Категории Веб-программирование |
автор: altesack / Пятница, Январь 07, 2011 / 2 комментов »

2 комментов

    Остается только добавить обработчик, который будет удалять файл $crc при редактировании или изменении страницы ))

    @ Андрей:
    А не факт что он вообще нужен, обработчик-то.

    Часто ли меняются статьи в блогах? Разве что добавляются комменты. А если сайт без комментов? Такие тоже ведь бывают.

    Милое дело!

Ответить