通过上面对每一个压缩函数的了解,我们可以看出来三个函数在用法上基本上是一致的,他们都可以指定不同的压缩算法进行压缩,为什么还要把他们区分出来呢?因为从PHP 5.4.0开始,gzcompress和gzdeflate函数加入了第三个参数$encoding,可以是三个常量:
- ZLIB_ENCODING_RAW 对应于纯DEFLATE格式
- ZLIB_ENCODING_GZIP 对应于GZIP格式
- ZLIB_ENCODING_DEFLATE 对应于ZLIB格式(注意不是纯DEFLATE格式)
虽然文档没有提及,但是这三个常量也可以用在gzencode函数的第三个参数$encoding_mode中。其实从PHP 5.4.0开始,这三个函数是一样的,只不过第三个参数的默认值不同;如果调用时传入第三个参数,那么这三个函数返回的数据相同。这可能是在设计的时候没有考虑完善,为了保持兼容采取的变通方式吧!