|
|
|
|
|
для: amigo62
(16.11.2007 в 20:32)
| | у меня все наоборот получилось =) deflate сильнее всех жмет, gzip средне, а x-gzip еще хуже
в методах компрессии не силен, прокомментировать грамотно не смогу. | |
|
|
|
|
|
|
|
для: Gemorroj
(11.11.2007 в 20:40)
| | x-gzip жмет сильнее... | |
|
|
|
|
|
|
|
для: amigo62
(11.11.2007 в 19:51)
| | Откуда такое мнение? | |
|
|
|
|
|
|
|
для: amigo62
(10.11.2007 в 19:16)
| | Насколько я понимаю, deflate- самый примитивный метод, а x-gzip- самый продвинутый? Перевернул иерархию, см. аттач | |
|
|
|
|
|
|
|
для: Gemorroj
(10.11.2007 в 16:59)
| | Всё, врубился как подогнать под скрипт=) Еще раз мерси=) | |
|
|
|
|
|
|
|
для: Gemorroj
(10.11.2007 в 16:59)
| | Спасибо, век не забуду=) правда, в самом начале файла вылезает
IN: 0 байт<br />
OUT: 2 байт<br />
Сжатие: 100 %<br />
Метод: deflate<br />
Поддерживаемые методы компрессии: deflate, gzip, x-gzip, identity, *;q=0
но думаю, дальше сам разберусь) | |
|
|
|
|
|
|
|
для: amigo62
(10.11.2007 в 15:54)
| | Вот | |
|
|
|
|
|
|
|
для: Gemorroj
(10.11.2007 в 14:08)
| | Спасибо большое! Теперь всё нормально! А как теперь вставить в страницу запись типа: "Gz: on 43%" (т.е. обозначить в тексте метод и степень сжатия)? | |
|
|
|
|
|
|
|
для: amigo62
(10.11.2007 в 10:13)
| |
<?php
if(@$_SERVER['HTTP_ACCEPT_ENCODING'])
{$compress = strtolower(@$_SERVER['HTTP_ACCEPT_ENCODING']);}
else
{$compress = strtolower(@$_SERVER['HTTP_TE']);}
if(substr_count($compress,'deflate'))
{
function compress_output_deflate($output)
{return gzdeflate($output,4);}
header('Content-Encoding: deflate');
ob_start('compress_output_deflate');
ob_implicit_flush(0);
}
elseif(substr_count($compress,'gzip'))
{
function compress_output_gzip($output)
{return gzencode($output,4);}
header('Content-Encoding: gzip');
ob_start('compress_output_gzip');
ob_implicit_flush(0);
}
elseif(substr_count($compress,'x-gzip'))
{
function compress_output_x_gzip($output)
{
$x = "\x1f\x8b\x08\x00\x00\x00\x00\x00";
$size = strlen($output);
$crc = crc32($output);
$output = gzcompress($output,4);
$output = substr($output, 0, strlen($output) - 4);
$x.= $output;
$x.= pack('V',$crc);
$x.= pack('V',$size);
return $x;
}
header('Content-Encoding: x-gzip');
ob_start('compress_output_x_gzip');
ob_implicit_flush(0);
}
?>
|
Это файл gzip.php всавляю его повсюду.
Есть этот скрипт с ридми на сайте, но сайт к сожалению временно не работает =(
Здесь цифра 4 (gzdeflate($output,4) и др.) это метод компрессии, от него зависит степень компессии. Возможные значения от 0 (не сжимает) до 9 (сжимает максимально). Но выше 4 ставить не стоит, выигрыш в степени компрессии минимален, а вот ресурсов сервера расходуется куда больше.
Так же лучше всего показала себя иерархия вида - deflate, gzip, x-gzip. Хотя пока не встречал браузера который бы поддерживал x-gzip и не поддерживал deflate или gzip. | |
|
|
|
|
|
|
|
для: Gemorroj
(09.11.2007 в 21:31)
| | Совершенно верно! А у Вас имеется рабочий пример кода на эту тему? У меня такое впечатление, что мой ничего не сжимает. Написал бы сам, но не до конца разобрался ещё с буферизацией, а надо очень срочно... Выручите?=) | |
|
|
|
|