所有这些都可以使用。两者之间有细微的差别:
- gzenpre() 使用GZIP文件格式,与
gzip
命令行工具相同。此文件格式的标头包含可选的元数据,DEFLATE压缩数据以及包含CRC32校验和和长度校验的页脚。 - gzcompress() 使用ZLIB格式。它具有较短的标头,仅用于标识压缩格式,DEFLATE压缩数据以及包含ADLER32校验和的页脚。
- gzdeflate()独自 使用原始的DEFLATE算法,这是其他两种格式的基础。
这三个函数均在后台使用相同的算法,因此它们的速度或效率不会有所不同。
gzenpre()添加了包含原始文件名和其他环境数据的功能(仅在压缩字符串时未使用)。
gzenpre()和
gzcompress()这两个添加校验和,所以归档文件的完整性进行验证,它可以在不可靠的传输和存储的方法是有用的。如果所有内容都存储在本地,并且您不需要任何其他元数据,那么
gzdeflate()就足够了。为了可移植性,我建议
gzenpre()(GZIP
gzcompress()格式)在其他工具中可能比(ZLIB格式)更受支持。
当压缩非常短的字符串时,每种方法的开销都很重要,因为对于非常短的输入,开销可能占输出的很大一部分。通过压缩空字符串来衡量的每种方法的开销为:
gzenpre('')= 20字节gzcompress('')= 8个字节gzdeflate('')= 2个字节



