[решено] "продвинутые" Юзербары

Аватара пользователя
Artem-Samsung

Re: [решено] "продвинутые" Юзербары

Сообщение Artem-Samsung »

Coutty, подем думать Изображение А пока тему можно считать решенной. Спасибо, Coutty
Аватара пользователя
Coutty

Re: [решено] "продвинутые" Юзербары

Сообщение Coutty »

Arrest, разве для изображений можно указывать "Expires"? Это для меня новость)
Аватара пользователя
Artem-Samsung

Re: [решено] "продвинутые" Юзербары

Сообщение Artem-Samsung »

Тестим Изображение

Значит поправил скобочек в 5-й и 6-й строчке, скрипт запахал, только картинки нету. Как бы не отображается.

Закоментировав те же 5-е и 6-е строчки все заработало, но на глаз так не скажешь, кешируется или нет Изображение ну сейчас нет, а может в кеше оно удалиться через 12 часов? Изображение

Но факт в том, что что то не то со строчками:



Код: Выделить всё

header("Expires:".date($good_str, time()+43200));

header("Last-Modified: ".date($good_str, filemtime("cache")));




Вот полностью скрипт:



Код: Выделить всё

<?php 

$good_str = "D, d M Y H:i:s T"; 

header("Content-type: image/jpeg"); 

header("Cache-Control: max-age=43200, must-revalidate"); 

header("Expires:".date($good_str, time()+43200));

header("Last-Modified: ".date($good_str, filemtime("cache"))); 



if(file_exists("cache") && (time() - filemtime("cache") > 3600*12)){ // 12 часов 

 fpassthru(cache); 

 die();

} 



  $im = @ImageCreateFromJPEG ("userbar.jpg"); 

  $white = imagecolorallocate($im, 255, 255, 255); 

  $text = "Blog topics: 38 Since 07.07.2008";



  imagettftext($im, 10, 0, 45, 13, $white, "Visitor TT2 -BRK-.ttf",  $text); 



ob_start(); 

imagejpeg($im, NULL, 100);

$image = ob_get_contents(); 

ob_end_flush(); 



error_reporting(0);$fh = fopen("cache", "w"); 

fwrite($fh, $image); 

fclose($fh); 

?>


А можно сделать что бы из кеша удалялось не по истечению 12-ти часов, а сразу?

10 кб как бы не сильно и в напряг будет.

если заменить здесь:

Код: Выделить всё

if(file_exists("cache") && (time() - filemtime("cache") > 3600*12)){

 fpassthru(cache); 

 die();

}


на

Код: Выделить всё

if(file_exists("cache") && (time() - filemtime("cache") > 3600*0)){

 fpassthru(cache); 

 die();

}


хм... а вот в Фаерфоксе все работает, как запланировано. В Опере нет (



Значит так:

IE 7 - картинка обновляется

Firefox 3 - картинка обновляется

Opera 9 - картинка в кеше застряет



Но такая же ситуация с моим самым простым программны кодом
Аватара пользователя
Arrest

Re: [решено] "продвинутые" Юзербары

Сообщение Arrest »

Coutty

ммм... нельзя, да? Изображение по идее браузер должен кэшировать все, что прикажут



Artem-Samsung

Если откручивать кэширование на сервере - то делать так:



Код: Выделить всё

<?php  

$good_str = "D, d M Y H:i:s T";  

header("Content-type: image/jpeg");  

header("Cache-Control: max-age=43200, must-revalidate");  

header("Expires:".date($good_str, time()+43200)); 

header("Last-Modified: ".date($good_str, filemtime("cache")));  





  $im = @ImageCreateFromJPEG ("userbar.jpg");  

  $white = imagecolorallocate($im, 255, 255, 255);  

  $text = "Blog topics: 38 Since 07.07.2008"; 



  imagettftext($im, 10, 0, 45, 13, $white, "Visitor TT2 -BRK-.ttf",  $text);  



imagejpeg($im, NULL, 100);

?>


тогда и волки сыты, и овцы целы и пастуху вечная память Изображение
Ответить

Вернуться в «Вебмастеру»