解码PHP中的压缩字符串

时间:2018-08-03 09:49:03

标签: php rest gzip guzzle php-curl

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

  • 从CURL自动解码不起作用
  • 使用标头设置为可接受的Guzzle不会执行任何操作
  • 仅将获取的字符串放入gzdecode()不会执行任何操作

我尝试了gzinflate,gzdecode以及它们的一些狂野组合,包括在开始和结束时剥离字节,但是没有成功。我绝不是压缩方面的专家,因此我不知道gzip压缩的字符串是否可以采用不同的格式,但是任何旧的“在线gzip服务”都可以毫无问题地对字符串进行解码

简单的例子: 该字符串:

H4sIAAAAAAAA//NIzcnJV8jPSVEozy/KSQEARAYhbw8AAAA=

应输出:

Hello old world

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

1 个答案:

答案 0 :(得分:3)

压缩后的字符串是base64编码的,因此您需要这样做:

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