ob_clean与gzip的bug

如果使用ob_start("ob_gzhandler");
则ob_clean()后面的输出将不显示,这是个bug,
可以用ob_end_clean();ob_start("ob_gzhandler"); 代替ob_clean();
否则后面输出内容将是空。

<?php
error_reporting(E_ALL);
ob_start("ob_gzhandler");
echo "content";
ob_clean();
echo "more content";
?>
上面的代码期望输出more content实际上什么内容也不会输出。

下面就正常了
<?php
error_reporting(E_ALL);
ob_start("ob_gzhandler");
echo "content";
ob_end_clean();
ob_start("ob_gzhandler");
echo "more content";
?>

使用压缩中途将buffer清空会导致有内容输出到浏览器,从而导致gzip的压缩数据格式错误

posted on 2012-02-27 15:17  kudosharry  阅读(290)  评论(0编辑  收藏  举报

导航