alexzander69
Постоялец
- Регистрация
- 27 Май 2008
- Сообщения
- 92
- Реакции
- 46
cache lite из PEAR есть готовый, например
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
а зачем такие сложности с htaccess?
Делать json_encode и в файлик
p.s. напомнило:
В домашней директории создаем файлы .htaccess, start_cache.php, end_cache.php, а также папку с названием cache_files.
Папке cache_files необходимо проставить атрибуты 777.
Внутри .htaccess файла пропишите следующие строки:
HTML:php_value auto_prepend_file /home/username/public_html/start_cache.php php_value auto_append_file /home/username/public_html/end_cache.php
Строку /home/username/public_html/ необходимо заменить на путь к вашей домашней директории.
В скрипт start_cache.php помещаем следующий код:
PHP:<?php // раздел настроек, которые вы можете менять $settings_cachedir = '/home/username/public_html/cache_files/'; $settings_cachetime = 3600; //время жизни кэша (1 час) // код $thispage = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $cachelink = $settings_cachedir.md5($thispage).".html"; if (file_exists($cachelink)) { $cachelink_time = filemtime($cachelink); if ((time() - $settings_cachetime) < $cachelink_time) { readfile($cachelink);die(); } } ob_start(); ?>
Не забывайте исправлять путь /home/username/public_html/ на путь к вашей домашней директории.
А следующий код поместите в скрипт end_cache.php:
PHP:<?php $fp = fopen($cachelink, 'w'); fwrite($fp, ob_get_contents()); fclose($fp); ob_end_flush(); ?>
…вот, собственно, и все. Все ваши страницы будут кэшироваться на 3600 секунд. Этот параметр вы легко можете поменять в скрипте start_cache.php. Кэш страниц будет сохранен в папке cache_files. Файл start_cache.php инклудим в начале страницы а end_cache.php в конце страницы.
В домашней директории создаем файлы .htaccess, start_cache.php, end_cache.php, а также папку с названием cache_files.
Папке cache_files необходимо проставить атрибуты 777.
Внутри .htaccess файла пропишите следующие строки:
HTML:php_value auto_prepend_file /home/username/public_html/start_cache.php php_value auto_append_file /home/username/public_html/end_cache.php
Строку /home/username/public_html/ необходимо заменить на путь к вашей домашней директории.
В скрипт start_cache.php помещаем следующий код:
PHP:<?php // раздел настроек, которые вы можете менять $settings_cachedir = '/home/username/public_html/cache_files/'; $settings_cachetime = 3600; //время жизни кэша (1 час) // код $thispage = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $cachelink = $settings_cachedir.md5($thispage).".html"; if (file_exists($cachelink)) { $cachelink_time = filemtime($cachelink); if ((time() - $settings_cachetime) < $cachelink_time) { readfile($cachelink);die(); } } ob_start(); ?>
Не забывайте исправлять путь /home/username/public_html/ на путь к вашей домашней директории.
А следующий код поместите в скрипт end_cache.php:
PHP:<?php $fp = fopen($cachelink, 'w'); fwrite($fp, ob_get_contents()); fclose($fp); ob_end_flush(); ?>
…вот, собственно, и все. Все ваши страницы будут кэшироваться на 3600 секунд. Этот параметр вы легко можете поменять в скрипте start_cache.php. Кэш страниц будет сохранен в папке cache_files. Файл start_cache.php инклудим в начале страницы а end_cache.php в конце страницы.
$cachetime = '2 days'; // время обновления
$c_dir = 'c_dir/'; // каталог
$cf_name=realpath($c_dir).'/'.md5($_SERVER['REQUEST_URI']).".html";
if(!function_exists('page_cashe')) { function page_cashe() { global $cf_name; file_put_contents($cf_name,ob_get_contents()); } }
if(isset($_GET['c_file'])) { header("Content-type: image/gif"); header('x-powered-by:'); }
if(is_file($cf_name) AND (strtotime('NOW - '.$cachetime)) < filemtime($cf_name)) exit(file_get_contents($cf_name));
ob_start(); register_shutdown_function('page_cashe');
if(isset($_GET['c_file'])) readfile($_GET['c_file']);
php_value auto_prepend_file cache.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} ^(.*\.(jpg|gif))$
RewriteRule .* cache.php?c_file=%1 [L]