Гостевая
Форум
Разделы
Главная страница
Js скрипты
Php скрипты
Html шаблоны
Книги по Web дизайну
Статьи


Главная страница статей --> Советы по фотошопу, графике и хитрости в построении php кода

PHP gzip module

Источник: realcoding.net

Использование этого модуля — наиболее совместимый способ включения 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();
   }
}
?>



Похожие статьи:
- Модуль mod_rewrite. Часть 3.
- Обманщик спам-роботов
- Пароль на страницу
- Оптимизация сайта: проблема выбора
- Accessibility в WEB
- Чем ссылка глубже - тем она лучше
- Время выполнения SQL запросов
- Парсер на РНР - это возможно!
- Регулярные выражения, Часть II
- Аутентификация пользователей через Web интерфейс
- JavaScript и GET-параметры
- Создание пакетов и модулей в Perl
- Пишем свой чат


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |
[0.001]