Http\Response->gzip

废弃

此函数在4.1.0或更高版本中已废弃, 请移步http_compression

在新版本中使用http_compression配置项取代了gzip方法。主要原因是gzip()方法未判断浏览器客户端传入的Accept-Encoding头,如果客户端不支持gzip压缩,强行使用会导致客户端无法解压。

全新的http_compression配置项会根据客户端Accept-Encoding头,自动选择是否压缩,并自动选择最佳的压缩算法。

函数原型

启用Http GZIP压缩。压缩可以减小HTML内容的尺寸,有效节省网络带宽,提高响应时间。必须在write/end发送内容之前执行gzip,否则会抛出错误。

swoole_http_response->gzip(int $level = 1);
  • $level 压缩等级,范围是1-9,等级越高压缩后的尺寸越小,但CPU消耗更多。默认为1
  • 调用gzip方法后,底层会自动添加Http编码头,PHP代码中不应当再行设置相关Http头

gzip压缩在1.7.14以上版本可用
jpg/png/gif格式的图片已经经过压缩,无需再次压缩

依赖

gzip功能依赖zlib库,在编译swoole时底层会检测系统是否存在zlib,如果不存在,gzip方法将不可用。

可以使用yumapt-get安装zlib库:

sudo apt-get install libz-dev


  • 羽白不在乎

    这个方法已经没有了吧?

    php --re swoole 没找到

    Fatal error: Uncaught Error: Call to undefined method swoole_http_response::gzip() in