我的网站每天都会缓存每个页面,出于某种原因,某些浏览器(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);
}
任何帮助都会非常感激!
答案 0 :(得分:0)
关于gzuncompress()
的PHP手册说:如果未压缩的数据超过压缩输入数据长度的32768倍,该函数将返回错误...
您也可以尝试让PHP使用ob_gzhandler()
代替您。