Вторник, 16.06.2026, 06:01
Приветствую Вас Гость | RSS
Поиск по каталогу
Главная страница | Каталог статей | Регистрация | Вход

Информационные технологии
Форма входа
Меню сайта

Категории каталога
php [246]
perl [1]
perl
ASP [1]
AJAX [0]

Друзья сайта

Наш опрос
Оцените мой сайт
Всего ответов: 69

Начало » Статьи » Web программирование » php

PHP gzip module
Использование этого модуля — наиболее совместимый способ включения GZIP-сжатия страниц на вашем сайте (работающем, разумеется, на PHP).



Сжатие GZIP может значительно ускорить загрузку страниц для всех ваших посетителей, в обмен на большую нагрузку на процессор сервера. Но если ваш сайт — не Yandex, а сервер — не 386'ой, её врядли кто-то заметит.



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



Подробнее узнать о сжатии GZIP можно здесь:





Использование



Скачиваем (размер меньше 1 килобайта): жмем правой кнопкой по ссылке, выбираем "Сохранить как...".

Переименовываем в gzip.php, и помещаем в каталог с сайтом. После этого добавляем такую строчку:



include("gzip.php");



...куда-нибудь в начало всех PHP-скриптов, выдающих страницы посетителям.



Наиболее совместимый?



Есть и другой способ включения сжатия. Он заключается в использовании встроенной функции PHP:



ob_start("ob_gzhandler");



Однако я обнаружил, что это не работает на некоторых серверах. Хотя сама строчка не выдаёт никаких ошибок, сжатия просто не происходит! Причины наверняка кроются в особенностях настройки этих серверов. Только с помощью gzip.php удалось задействовать сжатие, и ощутить, наконец, его преимущества.



Код файла gzip.php



<?php

// gzip.php v1.2 - read http://rm.pp.ru/?1.phpgzip

// released on 2004-05-06, by Roman Mamedov<roman at rm.pp.ru>

// license: do with this code whatever you want.



///// Configuration //////////////////

$PREFER_DEFLATE = false; // prefer deflate over gzip when both are supported

$FORCE_COMPRESSION = false; // force compression even when client does not report support

//////////////////////////////////////



function compress_output_gzip($output) {

   return gzencode($output);

}



function compress_output_deflate($output) {

   return gzdeflate($output, 9);

}



if(isset($_SERVER['HTTP_ACCEPT_ENCODING']))

   $AE = $_SERVER['HTTP_ACCEPT_ENCODING'];

else

   $AE = $_SERVER['HTTP_TE'];



$support_gzip = (strpos($AE, 'gzip') !== FALSE) || $FORCE_COMPRESSION;

$support_deflate = (strpos($AE, 'deflate') !== FALSE) || $FORCE_COMPRESSION;



if($support_gzip && $support_deflate) {

   $support_deflate = $PREFER_DEFLATE;

}



if ($support_deflate) {

   header("Content-Encoding: deflate");

   ob_start("compress_output_deflate");

} else{

   if($support_gzip){

       header("Content-Encoding: gzip");

       ob_start("compress_output_gzip");

   } else {

       ob_start();

   }

}

?>
Категория: php | Добавил: freeone (09.05.2007)
Просмотров: 626 | Рейтинг: 0.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:

Copyright Информационные технологии © 2006