gzip压缩vs ob_gzhandler

时间:2012-11-28 13:17:31

标签: php

在我的PHP.INI中,gzip compression已经启用。我可以在PHP页面中使用ob_start('ob_gzhandler');吗?这两者之间有什么不同?

2 个答案:

答案 0 :(得分:7)

像这样启用压缩:在PHP.ini中可以这样做:

zlib.output_compression = On

这意味着PHP服务的每个页面都将被压缩,这可能是您想要的,也可能不是。

然而,使用ob_start('ob_gzhandler')只会压缩该特定缓冲区/页面,并且不会影响PHP提供的任何其他内容。

如果要仅压缩某些输出,请使用第二种方法。混合这两者将是毫无意义的,并且可能只是使用额外的CPU周期来尝试压缩已经压缩的输出。

可能是PHP足够聪明,只能进行一次压缩,但是同时使用这两种方法仍然是徒劳无功的。

通常最好在Web服务器中启用压缩,但这取决于您要实现的目标。

答案 1 :(得分:2)

你不能一起使用这两者。

“你不能同时使用ob_gzhandler()和zlib.output_compression。另请注意,使用zlib.output_compression优于ob_gzhandler()。”

http://www.php.net/manual/en/function.ob-gzhandler.php

如果你需要缓冲输出,你仍然可以使用ob_start(),你就不能使用gzhandler回调。