一些浏览器中的Gzuncompress警告......怎么办?

时间:2011-08-04 13:42:43

标签: php caching gzip

我的网站每天都会缓存每个页面,出于某种原因,某些浏览器(Opera,有时是Chrome)会显示一条警告消息:

Warning: gzuncompress() [function.gzuncompress]: data error in /.../router.php on line 42

在大多数情况下,似乎95%的流量都不受影响(或者我相信)。有人知道需要启用,更新,修复或调整的东西吗?

以下是错误消息引用的代码:

if ( !empty($cache) && ($cache['mod_date'] * 60 * 60 * 24) > $loadTime ) {

$HTTP_ACCEPT_ENCODING = $_SERVER["HTTP_ACCEPT_ENCODING"];
if( headers_sent() )
    $encoding = false;
else if( strpos($HTTP_ACCEPT_ENCODING, 'x-gzip') !== false )
    $encoding = 'x-gzip';
else if( strpos($HTTP_ACCEPT_ENCODING,'gzip') !== false )
    $encoding = 'gzip';
else
    $encoding = false;

$compressed = $cache['contents'];

header('Content-Type: text/html');
if ( $encoding ) {
    header("Content-Encoding: gzip");
    echo $compressed;
}
else {
    echo gzuncompress($compressed);
}

任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:0)

关于gzuncompress()的PHP手册说:如果未压缩的数据超过压缩输入数据长度的32768倍,该函数将返回错误...

您也可以尝试让PHP使用ob_gzhandler()代替您。