Форум -> Обо всём... -> Кэширование |
Кэширование |
---|
antweb | Дата: 27.04.2007, в 17:25 | Сообщение №1 |
НовичокПользователь №: 26 Сообщений: 15
| Прописываю в index.php вот так:
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?php
include_once("function/classes/class.Cache.inc.php"); $cache = new cache; $cache->check_cache("index", 50);
if (file_exists("modules/$name/".$file.".php")) { include("modules/$name/".$file.".php"); } else { include("header.php"); warning(""._HOMEPROBLEMUSER."", "", "", 1); include("footer.php"); }
$cached = ob_get_contents(); $cache->set_cache($cached); ?> |
Вначале добавляю ob_start();
Но не срабатывает куда тока не пихал ):
Вот сам класс:
Код | 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 34 35 36 37 38 39 40
|
<?
if (!defined("FUNC_FILE")) die("Illegal File Access");
class cache
{
var $cache_name;
var $cache_dir = "cache";
function check_cache($filename, $expiry)
{
$this->cache_name = $filename;
if(file_exists("$this->cache_dir/$this->cache_name.html"))
{
$modif = time()-@filemtime("$this->cache_dir/$this->cache_name.html");
if ($modif < $expiry)
{
include_once("$this->cache_dir/$this->cache_name.html");
die();
}
}
}
function set_cache($buffer)
{
if (!empty($buffer))
{
if($fp = @fopen("$this->cache_dir/$this->cache_name.html","w+"))
{
fwrite($fp,$buffer);
fclose($fp);
}
}
ob_end_flush();
}
}
?>
|
|
|
|
|
AntDima | Дата: 27.04.2007, в 19:44 | Сообщение №2 |
АдминистраторПользователь №: 3 Сообщений: 60
| Цитата | "$this->cache_dir/$this->cache_name.html" |
Кто такой умный класс писал?))
PHP - Код | 1 2 3
| <?php $this->cache_dir.'/'.$this->cache_name.'.html' ?> |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно 27.04.2007 г. в 19:44:38 |
|
|
antweb | Дата: 27.04.2007, в 23:39 | Сообщение №3 |
НовичокПользователь №: 26 Сообщений: 15
| Сам класс работает на 100%, я сейчас делаю мини CMS свою и он отлично работает вот код index.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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| <?php
<?php
// Константы, что бы не вызывали напрямую файлы define("MODULE_FILE", true);
// Подключаем файл функций require_once("inc/function.php");
// Запускаем кэширование страницы ob_start();
// Запускаем таймер $Timer = new microTimer; $Timer->start();
// Определяем глобальные переменные global $StartModule, $mod;
// Делаем ссылки вида index.php?mod= $mod = (isset($_REQUEST['mod'])) ? $_REQUEST['mod'] : ''; if (preg_match("/[^a-zA-Z0-9_]/", $mod)) { Header("Location: index.php"); exit; }
// Определяем главный файл модуля if (isset($_GET['file']) || isset($_POST['file'])) { $file = trim(isset($_POST['file']) ? $_POST['file'] : $_GET['file']); if (preg_match("/[^a-zA-Z0-9_]/", $file)) { Header("Location: index.php"); exit; } } else { $file = "index"; }
// Делаем ссылки 3 уровня if(isset($_GET['op'])) $op = $_GET['op']; else $op = '';
// Читаем файл из кэша if ($cache) { include_once("inc/classes/class.Cache.inc.php"); $cache = new cache; $cache->check_cache("$mod", 50); }
// Выводим $StartModule на главную if (file_exists("mod/$mod/".$file.".php")) { include("mod/$mod/".$file.".php"); } else { echo ""._ERROR1.""; }
// Останавливаем таймер и выводим результат echo "\n<!-- Генерация страницы: ".$Timer->stop()." -->";
// Кэширование, сбор данных if ($cache) { $cached = ob_get_contents(); $cache->set_cache($cached); }
?> |
Твоё экранирование ничего не дало, ниче не собирает ):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно 27.04.2007 г. в 23:41:50 |
|
|
Sidious | Дата: 28.04.2007, в 19:00 | Сообщение №4 |
АдминистраторПользователь №: 42 Сообщений: 125
| стесняюсь спросить а папочка cache сушествует и досутпна для записи?
Далее, я так понимаю что функция проверки существования кеш файла работает с unixtime. То есть ваш кеш живет 50 секунд?
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно 28.04.2007 г. в 19:03:35 |
|
|
antweb | Дата: 30.04.2007, в 05:51 | Сообщение №5 |
НовичокПользователь №: 26 Сообщений: 15
| Папка разумееться существует, создавал её везде по пути к классу, chmod незачем т.к. винда. Да 50 сек. |
|
|
|
Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|