кэширование страниц

J
На сайте с 06.07.2011
Offline
169
567

Помогите пожалуйста модернизировать скрипт, что бы кэш шёл не в базу, а хранился в папке cache - этого же сайта.


<?php
$uri = $_SERVER['REQUEST_URI'];
mysql_connect('localhost', 'ЛОГИН', 'ПАРОЛЬ');
mysql_select_db('ИМЯ_БАЗЫ');
mysql_query("SET NAMES `utf8`");

$res = mysql_query("SELECT content FROM pages WHERE `url`='$uri'");
if ($row = mysql_fetch_row($res))
echo $row[0];
else
{
ob_start();
//генерация страницы начало
/* ... тут код страницы ... */
//генерация страницы завершение
$html = ob_get_clean();
echo $html;
$html = str_replace("'", "", $html);
mysql_query("INSERT INTO pages (url, content) VALUES ('$uri', '$html')");
}
?>
ДП
На сайте с 23.11.2009
Offline
203
#1
jano:
Помогите пожалуйста модернизировать скрипт, что бы кэш шёл не в базу, а хранился в папке cache - этого же сайта.


<?php
$uri = $_SERVER['REQUEST_URI'];

$cache_dir = __DIR__.DIRECTORY_SEPARATOR;
$filename = md5($uri);
if (file_exists($cache_dir.$filename)
echo file_get_contents($cache_dir.$filename);
else
{
ob_start();
//генерация страницы начало
/* ... тут код страницы ... */
//генерация страницы завершение
$html = ob_get_clean();
echo $html;
$html = str_replace("'", "", $html);
file_put_contents($cache_dir.$filename,$html);
}
?>

Как-то так, только порядок аргументов у file_put_contents проверьте, мог ошибиться.

J
На сайте с 06.07.2011
Offline
169
#2
Дикий пионер:

<?php
$uri = $_SERVER['REQUEST_URI'];

$cache_dir = __DIR__.DIRECTORY_SEPARATOR;
$filename = md5($uri);
if (file_exists($cache_dir.$filename)
echo file_get_contents($cache_dir.$filename);
else
{
ob_start();
//генерация страницы начало
/* ... тут код страницы ... */
//генерация страницы завершение
$html = ob_get_clean();
echo $html;
$html = str_replace("'", "", $html);
file_put_contents($cache_dir.$filename,$html);
}
?>

Как-то так, только порядок аргументов у file_put_contents проверьте, мог ошибиться.

Спасибо за ответ. Но почему-то не работает.

Ragnarok
На сайте с 25.06.2010
Offline
239
#3

Дикий пионер, вставляйте на этом форуме код в теги CODE


<?php
$uri = $_SERVER['REQUEST_URI'];

$cache_dir = __DIR__.DIRECTORY_SEPARATOR;
$filename = md5($uri);
if (file_exists($cache_dir.$filename)
echo file_get_contents($cache_dir.$filename);
else
{
ob_start();
//генерация страницы начало
/* ... тут код страницы ... */
//генерация страницы завершение
$html = ob_get_clean();
echo $html;
$html = str_replace("'", "", $html);
file_put_contents($cache_dir.$filename,$html);
}
?>

jano, скобки в первой строке ставили?

//TODO: перестать откладывать на потом

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий