Нужен Совет По GZIP Сжатию

  • Автор темы trigram
  • Дата начала

trigram

Guest
Нужен Совет По GZIP Сжатию

Уважаемые знатоки данной темы, если Вам не сложно, помогите мне разобраться в этом вопросе.

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
, а если я обновляю страницу, то все нормально, т.е. это сообщение при первом заходе на страницу.

Помогите, пожалуйста, меня очень интересует данный вопрос.

С Уважением, Саша.
 

Линк

Guest
потому что хендлеры низя пускать после конца заголовков

причем тут gzip? вам батя в основы php
 
Сверху