Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Кэширование страницы PHP

Сообщения:  [1-10]   [11-20] 

 
 автор: Trianon   (18.07.2009 в 15:35)   письмо автору
 
   для: gOFREe   (18.07.2009 в 15:12)
 

уже прогресс.

  Ответить  
 
 автор: gOFREe   (18.07.2009 в 15:12)   письмо автору
 
   для: Trianon   (18.07.2009 в 15:11)
 

Неееет, не уговорили ) Буду думать.

  Ответить  
 
 автор: Trianon   (18.07.2009 в 15:11)   письмо автору
 
   для: gOFREe   (18.07.2009 в 14:55)
 

то есть уговорил.
Добре.

  Ответить  
 
 автор: gOFREe   (18.07.2009 в 14:55)   письмо автору
 
   для: Trianon   (18.07.2009 в 14:48)
 

Хе... ну да.. страница то все равно выводится ))

  Ответить  
 
 автор: sim5   (18.07.2009 в 14:53)   письмо автору
 
   для: gOFREe   (18.07.2009 в 14:41)
 

if (!fwrite($fh,$buffer)) { //иначе перезаписываем вернее если не записан
echo $buffer; // Если ошибка, выводим буфер записанный ранее
Где у вас ранее запись буфера была, если новый файл создается? Это вывод буфера.
.......
include $file; //подключаем файл что подключаете?

  Ответить  
 
 автор: Trianon   (18.07.2009 в 14:48)   письмо автору
 
   для: gOFREe   (18.07.2009 в 14:45)
 

Нет.
Это: Задача такова, пользователь заходит на сайт, если эта страница кэширована, то вывести html страницу(без компиляции кода)

Вот покажите мне, где у Вас развивается ветвь с компиляцией кода и где - без компиляции?
Все претензии, которые тут справедливо обнаружил Sim5 - это мелочь, по сравнению с тем, что Вы не решаете главной задачи - не заменяете тяжеловесное вычисление контента чтением из места хранения кеша.

покажите мне - Вот тут у меня страница вычислялась долго и самозабвенно.
А тут - нет, тут берется из файла. Где?

Зато прилепить тяжелую функцию md5_file рассчитывать хеш кеша , (который не меняется!!!!!) - это Вы реализовали.

Вторым пунктом шло: Вам рано за это браться.

  Ответить  
 
 автор: gOFREe   (18.07.2009 в 14:45)   письмо автору
 
   для: Trianon   (18.07.2009 в 14:42)
 

Это?

if (!fwrite($fh,$buffer)) { //иначе перезаписываем
                    echo $buffer;  // Если ошибка, выводим буфер записанный ранее
                    } 

  Ответить  
 
 автор: Trianon   (18.07.2009 в 14:42)   письмо автору
 
   для: gOFREe   (18.07.2009 в 13:49)
 

А по второму пункту?

  Ответить  
 
 автор: gOFREe   (18.07.2009 в 14:41)   письмо автору
 
   для: sim5   (18.07.2009 в 14:40)
 

Вывод буфера


<?
ob_start
(); //кэш

//Вывод страницы


$buffer ob_get_contents();
$md5_new_file trim(md5($buffer));
$file $md5_new_file.".html";
ob_end_clean(); //очищяем буфер
     
if (file_exists($file)) { //если файл существует
         
$md5_old_file trim(md5_file($file));
         if (
$md5_old_file == $md5_new_file) { //если файл с буфером равны
             
include $file//подключаем файл
            
}
            else { 
                
$fh fopen($file"w"); 
                
flock ($fhLOCK_EX);
                if (!
fwrite($fh,$buffer)) { //иначе перезаписываем
                    
include $file//подключаем файл
                    
}
                    
flock ($fhLOCK_UN);
                    
fclose($fh);
                    include 
$file//подключаем файл
         
}
     }
     else {
         
$fh fopen($file"w"); 
         
flock ($fhLOCK_EX);
                if (!
fwrite($fh,$buffer)) { //иначе перезаписываем
                    
echo $buffer;  // Если ошибка, выводим буфер записанный ранее
                    
}
                    
flock ($fhLOCK_UN);
                    
fclose($fh);
                    
                    include 
$file//подключаем файл
     
}
?> 

  Ответить  
 
 автор: sim5   (18.07.2009 в 14:40)   письмо автору
 
   для: gOFREe   (18.07.2009 в 14:31)
 

http://ru2.php.net/manual/en/function.flock.php
http://www.php.su/functions/?flock

Какую страницу без кеширования, если ее нет на диске?

  Ответить  

Сообщения:  [1-10]   [11-20] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования