Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Методы GZIP 
:(
    Опции темы
Beos
Дата 2.1.2008, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 20.8.2007
Где: Latvia -> Riga

Репутация: нет
Всего: нет



Интересная тема для обсуждений. Я знаю 3 способа преобразования HTML в GZIP на лету...

1) Самый простой вроде... PHP.INI -> zlib.output_compression = On

2) Второе место по сложности...  smile 

<?
ob_start("ob_gzhandler", <уровень сжатия>);
?>
... HTML ...

3) Мы конечно же не ищем лёгких путей... я почему то выбрал именно этот (из за гибкости настройки и вобще, нравится когда вижу код)

Код

<?
 include('gzdoc.php'); 
?>
<HTML>
... the page ...
</HTML>
<?
 gzdocout(); 
?>

gzdoc.php

<?
ob_start(); 
ob_implicit_flush(0); 
function CheckCanGzip(){
    global $HTTP_ACCEPT_ENCODING; 
    if (headers_sent() || connection_aborted()){
        return 0; 
    }
    if (strpos($HTTP_ACCEPT_ENCODING,  'x-gzip') !== false) return "x-gzip"; 
    if (strpos($HTTP_ACCEPT_ENCODING, 'gzip') !== false) return "gzip"; 
    return 0; 
}
/* $level = compression level 0-9,  0=none,  9=max */
function GzDocOut($level=3, $debug=0){
    $ENCODING = CheckCanGzip(); 
    if ($ENCODING){
        print "\n<!-- Use compress $ENCODING -->\n"; 
        $Contents = ob_get_contents(); 
        ob_end_clean(); 
        if ($debug){
            $s = "<center><font style='color:#C0C0C0;
                  font-size:9px; font-family:tahoma'>Not compress
                  length: ".strlen($Contents).";  "; 
            $s .= "Compressed length: ".
                   strlen(gzcompress($Contents, $level)).
                   "</font></center>"; 
            $Contents .= $s; 
        }
        header("Content-Encoding: $ENCODING"); 
        print "\x1f\x8b\x08\x00\x00\x00\x00\x00"; 
        $Size = strlen($Contents); 
        $Crc = crc32($Contents); 
        $Contents = gzcompress($Contents, $level); 
        $Contents = substr($Contents,  0,  strlen($Contents) - 4); 
        print $Contents; 
        print pack('V', $Crc); 
        print pack('V', $Size); 
        exit; 
    }else{
        ob_end_flush(); 
        exit; 
    }
}
?>



Так какой де метод лучше? Какие + и - у этих методов? Что выбрать?
PM MAIL   Вверх
Str!pe
Дата 5.1.2008, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


профиль удален
****


Профиль
Группа: Участник
Сообщений: 2426
Регистрация: 12.6.2005
Где: На земле.

Репутация: 17
Всего: 152



Beos, Это конечно все интересно только зачем сжатие нужно? Растолкуй подробнее плиз.


--------------------
Со мной можно связаться по скайпу или по аське.
Занимаюсь продвижением сайтов - самой таргетированной рекламой.
PM MAIL ICQ Skype   Вверх
Beos
Дата 8.1.2008, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 20.8.2007
Где: Latvia -> Riga

Репутация: нет
Всего: нет



Все что я хочу узнать: Так какой же метод лучше? Какие + и - у этих методов? Что выбрать?
PM MAIL   Вверх
Beos
Дата 9.1.2008, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 20.8.2007
Где: Latvia -> Riga

Репутация: нет
Всего: нет



брр... неужели в этот раздел никто не заходит  smile 
PM MAIL   Вверх
Sunvas
Дата 9.1.2008, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



Я у себя на сайте пользуюсь третим методом. Он наиболее хорошо подходит для универсальных нужд сайта. Вначале генерации страницы вызвали одну процедуру, после генерации - вторую. При это можно делать echo сколько угодно раз (это особенно полезно, если для управления сайтом используется какая-либо CMS). Ну а после генерации страницы вызываем вторую процедуру и все прекрасно передается пользователю.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Beos
Дата 10.1.2008, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 20.8.2007
Где: Latvia -> Riga

Репутация: нет
Всего: нет



На счет 2 и 3 я понял. Мне очень интересно узнать про первый способ.

По идеи первый способ все это делает автоматически. Архивирует ли он картинки все автоматом? Чем он отличается от 3 способа?

З.Ы. Удивляюсь насколько это оказывается не актуальная тема. Почему всем это по барабану интересно...

Это сообщение отредактировал(а) Beos - 10.1.2008, 07:14
PM MAIL   Вверх
Alex13
Дата 10.1.2008, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 30.12.2005
Где: Новосибирск

Репутация: нет
Всего: 1



Beos, 
http://ru2.php.net/manual/ru/ref.zlib.php#...put-compression
Судя по тому, что это все настройки php, то сжиматься будет только то, что обрабатывается php интерпретатором.


--------------------
Самая страшная ошибка - это ошибка, не имеющая явных причин и конкретных последствий.
Антисоциальный блог.
PM WWW ICQ Jabber   Вверх
Beos
Дата 14.1.2008, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 20.8.2007
Где: Latvia -> Riga

Репутация: нет
Всего: нет



Очень логично smile 

Вроде все ясно, значит по сути все методы это одно и то же...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Продвижение и оптимизация сайтов | Следующая тема »


 




[ Время генерации скрипта: 0.0462 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.