我的ajax响应非常大,实际上有900KB。因此,我需要进行gzip压缩以提高性能。
请问有谁可以帮助我从我的php中获取被gzip压缩的内容。
先行致谢。
我的ajax响应非常大,实际上有900KB。因此,我需要进行gzip压缩以提高性能。
请问有谁可以帮助我从我的php中获取被gzip压缩的内容。
先行致谢。
在页面上输出任何内容之前,请加入以下代码:
ob_start("ob_gzhandler");
然后在你的内容后面加上:
ob_end_flush();
您的内容将被压缩
zlib.output_compression
而不是ob_gzhandler
,因为php.net文档建议使用其中任何一个,此外不要忘记在输出结束时使用ob_end_flush();
。 - Arthur Kushman选项1:
在您的php.ini
中配置zlib.output_compression
文档: http://www.php.net/manual/en/zlib.configuration.php#ini.zlib.output-compression
选项2:
使用: ob_gzhandler
文档: http://php.net/manual/en/function.ob-gzhandler.php
注意:
900Kb
对于ajax响应来说太大了。
如果在使用ob_gzhandler()
之前无法更新php.ini
配置文件,您也可以尝试以下方法:
ini_set('zlib.output_compression', 1);
ob_start('ob_gzhandler');
和 ob_end_flush();
只会压缩这个特定的缓冲区/页面,并且它不应影响 PHP 提供的任何其他内容。而在 PHP 文件中使用 ini_set('zlib.output_compression', 1);
或者在 PHP.ini
文件中使用 zlib.output_compression = On
,将会对你 PHP 项目中的每个响应都使用这种压缩方式,除非你使用 ini_set('zlib.output_compression', 1);
进行更改。 - Utmost Creatorzlib.output_compression_level
来更改压缩级别(比率),指定一个值介于 0
(无压缩)到 9
(最大压缩)之间。默认值为 -1
,让服务器决定使用哪个级别。文档:https://www.php.net/manual/en/zlib.configuration.php#ini.zlib.output-compression-level - Utmost Creator