xriby
Новичок
Простое кеширование
Читаю фак о кешировании:
http://phpclub.ru/faq/cahcing/CaptureServerSideOutputForCaching?v=stj
Там есть пример использвания буфера вывода для кеширрования
пример 5.3 - 5.6 (3.php)
Этот пример можно реализовать без использования буфера вывода, например, вот так:
1. Я не врубаюсь в использовании буфера вывода при кешировании.
Чем тот пример отличается от моего?
Вообще к каких случаях использовать буфер?
2. Приведенный мной пример можно использовать для простого кеширования данных?
Читаю фак о кешировании:
http://phpclub.ru/faq/cahcing/CaptureServerSideOutputForCaching?v=stj
Там есть пример использвания буфера вывода для кеширрования
пример 5.3 - 5.6 (3.php)
Этот пример можно реализовать без использования буфера вывода, например, вот так:
PHP:
<?php
/**
* Запись кэш-файла
* @param string contents – содержание буфера
* @param string filename – имя файла, используемое при создании кэш-файла
* @return void
*/
function writeCache($content, $filename) {
file_put_contents('./cache/' . $filename, $content);
}
/**
* Проверка кэш-файлов
* @param string filename – имя проверяемого кэш-файла
* @param int expiry – максимальный «возраст» файла в секундах
* @return mixed содержимое кэша или false
*/
function readCache($filename, $expiry) {
if (file_exists('./cache/' . $filename)) {
if ((time() - $expiry) > filemtime('./cache/' . $filename))
return FALSE;
$cache = file_get_contents('./cache/' . $filename);
return $cache;
}
return FALSE;
}
// Обработка шапки
if (!$header = readCache('3_header.cache', 604800)) {
$header = '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Страница, кэшированная поблочно </title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>
<body>
Время создания шапки: ' . date('H:i:s') . '<br />';
writeCache($header, '3_header.cache');
}
// Обработка тела страницы
if (!$body = readCache('3_body.cache', 5)) {
$body = 'Время создания тела: ' . date('H:i:s') . '<br />';
writeCache($body, '3_body.cache');
}
// Обработка нижнего колонтитула страницы
if (!$footer = readCache('3_footer.cache', 604800)) {
$footer = 'Время создания нижнего колонтитула:' . date('H:i:s') .
'<br />
</body>
</html>';
writeCache($footer, '3_footer.cache');
}
// Выводим содержимое страницы
echo $header . $body . $footer;
?>
Чем тот пример отличается от моего?
Вообще к каких случаях использовать буфер?
2. Приведенный мной пример можно использовать для простого кеширования данных?