解码 PHP 中的 gzip 字符串

Decoding a gzipped string in PHP

我正在尝试使用 PHP 解码 REST 响应 (YouTrack-API) 的压缩 body。似乎没有任何效果:

我试过 gzinflate、gzdecode 和它们的一些疯狂组合,包括在开始和结束处剥离字节,但没有成功。我绝不是压缩方面的专家,所以我不知道 gzip 字符串是否可以采用不同的格式,但是任何旧的 'online gzip service' 都可以毫无问题地解码字符串

简单示例: 这个字符串:

H4sIAAAAAAAA//NIzcnJV8jPSVEozy/KSQEARAYhbw8AAAA=

应该输出:

Hello old world

放入我能找到的任何在线转换器,它有效,放入任何 PHP 函数:数据错误。 PHP 和 gzip 根本不起作用是怎么回事?它与整个响应被压缩或仅与内容有关吗?

gzipped 字符串是 base64 编码的,所以你需要做:

echo gzdecode(base64_decode('H4sIAAAAAAAA//NIzcnJV8jPSVEozy/KSQEARAYhbw8AAAA='));