1

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

4

2 回答 2

7

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

zlib.output_compression = On

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

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

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

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

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

于 2012-11-28T13:26:10.657 回答
2

你不能同时使用这两者。

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

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

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

于 2012-11-28T13:37:06.130 回答