как использовать GZIP сжатие[PHP]
Цитата:
GZIP позволяет быстрее отправлять страницы клиентам, сжимая их и экономя трафик, однако не все серверы позволяют использовать данный формат.
код выдранный из IPB
Код:
// print a pure redirect screen
function do_output(){
$html = $this->ipsclass->html;
...
...
...
$this->_finish();
print $html;
exit;
}
function do_output(){
$html = $this->ipsclass->html;
...
...
...
$this->_finish();
print $html;
exit;
}
Код:
// finish
function _finish(){
// Do shutdown
if (!USE_SHUTDOWN){
$this->ipsclass->my_deconstructor();
$this->ipsclass->DB->close_db();
}
// Start GZIP compression
if ($this->ipsclass->vars['disable_gzip'] != 1){
$buffer = "";
if (count(ob_list_handlers())){
$buffer = ob_get_contents();
ob_end_clean();
}
$lenbuf = strlen($buffer);
@ob_start('ob_gzhandler');
$lenbufgz = strlen($buffer);
print $buffer;
print "Size: $lenbuf<br />\n";
print "Size is gz: $lenbufgz<br />\n";
}
// Print, plop and part
$this->do_headers();
}
function _finish(){
// Do shutdown
if (!USE_SHUTDOWN){
$this->ipsclass->my_deconstructor();
$this->ipsclass->DB->close_db();
}
// Start GZIP compression
if ($this->ipsclass->vars['disable_gzip'] != 1){
$buffer = "";
if (count(ob_list_handlers())){
$buffer = ob_get_contents();
ob_end_clean();
}
$lenbuf = strlen($buffer);
@ob_start('ob_gzhandler');
$lenbufgz = strlen($buffer);
print $buffer;
print "Size: $lenbuf<br />\n";
print "Size is gz: $lenbufgz<br />\n";
}
// Print, plop and part
$this->do_headers();
}
Цитата:
ob_gzhandler - ob_start callback-функция для буфера вывода gzip.
результат работы
[HTML]
некий html код
...
...
Size: 5993
Size is gz: 5993[/HTML]
как видно из результат gzip не срабатывает
возникает резонный ворос почему
возможно это я делаю что-то нето
забей на gzip. при нынешних каналах к клиенту - это экономия на спичках. и лишняя нагрузка на процессор.
Автор, поставь @ob_start('ob_gzhandler'); в самом верху и не обращай внимания на размер буфера, ибо ты его и меряешь, а никак не размер передаваемых в поток байтов.
Цитата: squirL
забей на gzip. при нынешних каналах к клиенту - это экономия на спичках. и лишняя нагрузка на процессор.
в битриксе объем передаваемых html-данных уменьшается в несколько раз (от 4 до 20)
если я не ошибаюсь то это достигается именно за счет gzip сжатия
Цитата: mfender
Автор, поставь @ob_start('ob_gzhandler'); в самом верху и не обращай внимания на размер буфера, ибо ты его и меряешь, а никак не размер передаваемых в поток байтов.
а как мне замерить размер передаваемых байтов?
и можноли вообще это зделать
я, к примеру, использую Web Developer для Firefox. Там в Information есть View Document Size. Он показывает размер того, что пришло браузеру в сжатом виде, и сколько это весит не в сжатом. Так, к примеру, эта страница со сжатием весит 7Кб, без сжатия - 91Кб. Уменьшение трафика налицо.