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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Как лучше организовать gzip сжатие?
 
 автор: infocean   (03.08.2011 в 15:09)   письмо автору
 
 

Здравствуйте.
Нужно, чтобы сжимались js, css и html. Весь вывод происходит с помощью php.
Варианты:
1) Делать сжатие через буфер (с помощью php: ob_start();)
2) Делать сжатие с помощью .htaccess (AddOutputFilterByType DEFLATE )

Какой вариант более правильный?

А также прошу вас подсказать, каким образом организовать кэширование для файлов js, css, png, так чтобы эти файлы кэшировались в сжатом виде.

Заранее благодарю за ваши ответы.

  Ответить  
 
 автор: cheops   (03.08.2011 в 20:03)   письмо автору
 
   для: infocean   (03.08.2011 в 15:09)
 

Если второй вариант работает, лучше воспользоваться им - побыстрее будет и надежнее.

  Ответить  
 
 автор: infocean   (03.08.2011 в 22:39)   письмо автору
 
   для: cheops   (03.08.2011 в 20:03)
 

Спасибо за ответ.
Попробовал 2-ой вариант, не сработал :( (хостинг .masterhost).
Первый вариант работает без проблем для html, однако мне главное сжать js и css.

p.s. Поговорил с хостингом, 2-ой вариант точно отменяется.

p.s.2. Буду рад советам по php - компрессорам для сжатия js и css.

  Ответить  
 
 автор: Jaroslav   (08.08.2011 в 23:34)   письмо автору
 
   для: infocean   (03.08.2011 в 15:09)
 

Я лично у себя на сайтах делаю так:


<? 
/* для сжатия страниц начало */
if ($XGzipYes!="OK") { 
if (
strpos(' ' $_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false) { $miniBB_gzipper_encoding 'x-gzip'; }
if (
strpos(' ' $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false) { $miniBB_gzipper_encoding 'gzip'; }
if (isset(
$miniBB_gzipper_encoding)) { ob_start(); }
function 
percent($a$b) {  $c $b/$a*100; return $c; }
 @
session_start();  header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
}
/* для сжатия страниц конец */
?>


<html>
<body>
Далее контент:
</body>
</html>


<?
if (isset($miniBB_gzipper_encoding)) { 
  
$miniBB_gzipper_in ob_get_contents();
  
$miniBB_gzipper_inlenn strlen($miniBB_gzipper_in);
  
$miniBB_gzipper_out gzencode($miniBB_gzipper_in2);
  
$miniBB_gzipper_lenn strlen($miniBB_gzipper_out);
  
$miniBB_gzipper_in_strlen strlen($miniBB_gzipper_in);
  
$gzpercent percent($miniBB_gzipper_in_strlen$miniBB_gzipper_lenn);
  
$percent round($gzpercent);
  
$miniBB_gzipper_in str_replace('<!- GZipper_Stats ->''Original size: '.strlen($miniBB_gzipper_in).' GZipped size: '.$miniBB_gzipper_lenn.' Сompression: '.$percent.'%<hr>'$miniBB_gzipper_in);
  
$miniBB_gzipper_out gzencode($miniBB_gzipper_in2);
  
ob_clean();
  
header('Content-Encoding: '.$miniBB_gzipper_encoding);
  echo 
$miniBB_gzipper_out;
  }
?>

  Ответить  
Rambler's Top100
вверх

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