|
|
|
| Использую код:
<?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);
}
?>
| Взял с этого сайта (форума), но не знаю, как вывести статистику из него. Помогите. Спасибо. | |
|
|
|
|
|
|
|
для: Maxam
(02.02.2011 в 15:54)
| | Компрессия задается аргументом функции, и у вас равна 4. В чем проблемы? | |
|
|
|
|
|
|
|
для: sim5
(02.02.2011 в 16:04)
| | Неверно.
Ведь если я сожму гзипом строку длиной во 1000 байт, с уровнем компрессии 5, то она не станет от этого равной 200b.
Автору нужно определить на сколько его страница сжалась после использования компрессии. | |
|
|
|
|
|
|
|
для: icq677555
(02.02.2011 в 16:12)
| | Так пусть считает проценты, какая проблема? | |
|
|
|
|
|
|
|
для: sim5
(02.02.2011 в 16:13)
| | Вот именно. Аргумент в gzcompress никак не участвует в формуле расчета процента. | |
|
|
|
|
|
|
|
для: Maxam
(02.02.2011 в 15:54)
| | Используйте ob_content_lenght
Возвращает длинну контента в буфере. | |
|
|
|
|
|
|
|
для: icq677555
(02.02.2011 в 16:09)
| | Такой функции не нашёл, но нашёл ob_get_length.
Она такое ощущение, что возвращает то, сколько страница до компрессии. Может ошибаюсь. Я сравниваю показатели с теми, что Opera предлагает. | |
|
|
|
|
|
|
|
для: Maxam
(02.02.2011 в 16:26)
| | Сорри, ошибся с именем. | |
|
|
|
|
|
|
|
для: icq677555
(02.02.2011 в 16:33)
| | Спасибо, я проверил первый самый вариант, там где решение всё в одной функции - вывод - сжимает хуже, чем мой вариант! | |
|
|
|
|
|
|
|
для: Maxam
(02.02.2011 в 16:41)
| | А вы zipDebug поставьте равным нулю. | |
|
|
|
|
|
|
|
для: icq677555
(02.02.2011 в 16:42)
| | Я думал это просто отвечает за вывод информации как раз, не? | |
|
|
|
|
|
|
|
для: icq677555
(02.02.2011 в 16:42)
| | Не, всё равно не то. Там применяется один вариант сжатия, а в моём примере 3. Как минимум уже у меня код лучше. Вот только не знаю в какое место вставить strlen или что-то типо того.
Делаю:
$bufZipedLen = strlen(ob_start);
| Так он показывает до сжатия. | |
|
|
|
|
|
|
|
для: Maxam
(02.02.2011 в 15:54)
| | hlp | |
|
|
|