Neden gzip sıkıştırma çalışmıyor?

2 Cevap php

Bu garip bir tanesidir. Ben yavaş yavaş canlı bir sunucuda bir web sitesi yeniden duyuyorum. Sitenin bazı bölümleri yeniden inşa edilmiştir ve bu nedenle kod ev dir (yani :/ mysite / newcode) bir alt dizinine yerleştirilir.

Ben başarıyla ("ob_gzhandler") ob_start kullanarak eski site gzip'li etmişti; Yani, ben yeni kod için aynı kodu uyguladık. Ancak, bazı garip nedenle, onun gibi gzip'lenmiş değil döndürülüyor. I http://www.whatsmyip.org/http_compression/ üzerinde kontrol ve http://www.gidnetwork.com/tools/gzip-test.php var. Gzip işleyicisi hem eski hem de yeni kodu (herhangi bir çıkış öncesi) ilk hatları biri olarak yer almaktadır eğer yeni kodu Gzip Sıkıştırma olmaz neden oldukça anlayamıyorum.

PHP 5.1.6 Apache 2.0 Centos 5

2 Cevap

Sorunu değil, her yerde belgelenen emin öğrendim ...

Eğer ob_start kullanıyorsanız ("ob_gzhandler"); ve ne içeriğinizi temizlemek için, sen, () floş () ob_flush kullanmanız gerekir. Floş kullanılarak sıkıştırma dışarı atmak olacaktır.

http://docs.php.net/ob_gzhandler diyor ki:

Before ob_gzhandler() actually sends compressed data, it determines what type of content encoding the browser will accept ("gzip", "deflate" or none at all) and will return its output accordingly.
Bu sorunun nedeni olabilir mi?

edit: Senin gibi bir şey bu test edebilirsiniz

function dbg_ob_gzhandler($buffer, $mode) {
  error_log('dbg_ob_gzhandler invoked');
  $rv = ob_gzhandler($buffer, $mode);
  if ( false===$rv ) {
    error_log('client does not support compressed content');
  }
  return $rv;
}
ob_start('dbg_ob_gzhandler');