zlib.output_compression和output_buffering

时间:2014-08-18 12:57:07

标签: php compression buffer

我可以通过将zlib.output_compression指令设置为on来压缩输出,然后将output_buffering指令设置为off吗?

其次,我读到我可以为zlib.output_compression指令设置一个数字值,该指令指定特定的缓冲区大小。 但是,如果我还将output_buffering指令设置为不同的字节数值,该怎么办?什么是最大缓冲区大小?

1 个答案:

答案 0 :(得分:7)

  1. 是的,您可以通过这种方式压缩PHP输出,但是Web服务器(nginx,Apache)可以对所有类型的内容(css资产等)进行更有效的压缩,而不仅仅是PHP输出:)< / p>

  2. 是的,您可以将zlib.output_compression设置为数值 http://php.net/manual/en/zlib.configuration.php#ini.zlib.output-compression

      

    此选项也接受整数值而不是布尔“开”/“关”,   使用它可以设置输出缓冲区大小(默认为4KB)。   至于最大缓冲区大小,你不能设置它比Web服务器可以处理的更多。例如,nginx使用4K或8K输出缓冲区。   http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_buffer_size

  3. ob_gzhandler压缩级别使用zlib.output_compression_level,默认值为-1,级别6(默认值-1,让服务器决定使用哪个级别)。 但! PHP手册http://php.net/manual/en/function.ob-gzhandler.php说:

      

    您不能同时使用ob_gzhandler()和zlib.output_compression。也   请注意,首选使用zlib.output_compression   ob_gzhandler()。