trigram
Guest
Нужен Совет По GZIP Сжатию
Уважаемые знатоки данной темы, если Вам не сложно, помогите мне разобраться в этом вопросе.
1. В чем разница:
сжимать так:
или так:
(эту ф-цию я нашел на форуме, убрал только вывод статистики сжатия.)
2. Почему при ob_start("ob_gzhandler"); мне выдает ошибку:
Warning: ob_start(): output handler 'ob_gzhandler' cannot be used after 'URL-Rewriter' in /home2/alperu/public_html/wcps/inc/php_function.php on line 7
, а если я обновляю страницу, то все нормально, т.е. это сообщение при первом заходе на страницу.
Помогите, пожалуйста, меня очень интересует данный вопрос.
С Уважением, Саша.
Уважаемые знатоки данной темы, если Вам не сложно, помогите мне разобраться в этом вопросе.
1. В чем разница:
сжимать так:
PHP:
ob_start("ob_gzhandler");
PHP:
function miscGzHandler($buf) {
$zipRatio = 5;
if(empty($buf) || !isset($_SERVER['HTTP_ACCEPT_ENCODING'])) {
header('Content-length: '.strlen($buf));
return $buf;
}
$enc_ar = explode(',', $_SERVER['HTTP_ACCEPT_ENCODING']);
$mayZip = false; $encoding = '';
foreach($enc_ar as $enc) {
$enc = trim($enc);
if('gzip' === $enc || 'x-gzip' === $enc) {
$mayZip = true;
$encoding = $enc;
break;
}
}
if(!$mayZip) {
header('Content-length: '.strlen($buf));
return $buf;
}
$bufZiped = gzcompress($buf, $zipRatio);
$bufZiped = pack('cccccccc',0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00)
.substr($bufZiped, 0, -4)
.pack('V',crc32($buf))
.pack('V',strlen($buf));
header('Content-encoding: '.$encoding);
header('Content-length: '.strlen($bufZiped));
return $bufZiped;
}
ob_start('miscGzHandler');
2. Почему при ob_start("ob_gzhandler"); мне выдает ошибку:
Warning: ob_start(): output handler 'ob_gzhandler' cannot be used after 'URL-Rewriter' in /home2/alperu/public_html/wcps/inc/php_function.php on line 7
, а если я обновляю страницу, то все нормально, т.е. это сообщение при первом заходе на страницу.
Помогите, пожалуйста, меня очень интересует данный вопрос.
С Уважением, Саша.