You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python zlib与PHP gzcompress压缩结果尾部不同,如何得到相同MD5?

PHP gzcompress与Python zlib.compress输出不一致的解决方案

出现该问题的核心原因是两侧压缩参数没有显式对齐,虽然默认参数逻辑上一致,但不同环境下zlib库的隐式默认配置可能存在差异,按以下方式调整即可得到完全一致的压缩结果:

调整后PHP代码

显式指定固定压缩级别,此处以常用的压缩级别6为例:

$input_file = "a.txt";
$source = file_get_contents($input_file);
$source = gzcompress($source, 6);
file_put_contents("php.txt", $source);

调整后Python代码

显式指定相同的压缩级别,同时指定wbits=15对齐PHP侧的标准zlib输出格式:

import zlib

testFile = "a.txt"
with open(testFile, "rb") as f:
    content = f.read()

outContent = zlib.compress(content, level=6, wbits=15)
with open("py.txt", "wb") as f:
    f.write(outContent)

补充说明

  • 压缩级别可根据需求在1-9范围内自由选择,只要两侧保持相同的固定值即可,无需强制使用6。
  • 若调整参数后仍存在差异,可检查两侧依赖的zlib库版本,大版本跨度的zlib库实现存在优化差异,会导致输出不一致,对齐zlib库版本即可解决。

内容的提问来源于stack exchange,提问作者Find

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:48:03