我通过流中的PHP套接字接收gzip压缩数据。数据符合 RFC-1952
RFC-1950
。
while(($buffer = socket_read($this->socket, 1024))){
$content .= $buffer;
}
问题是双重的。
答案 0 :(得分:1)
我相信有一种方法可以做到这一点:
fread();
答案 1 :(得分:0)
您没有检测到gzip的结束。
来自rfc1952
gzip文件由一系列"成员"组成。 (压缩数据 套)。每个成员的格式如下所示 部分。成员只是在文件中一个接一个出现, ,之前,之间或之后没有其他信息。
您可以将gzip文件合并在一起,但仍然可以解码它,因为它仍然是一个有效的gzip文件。我认为只有开始签名
ID1(身份证1) ID2(标识2) 它们具有固定值ID1 = 31(0x1f,\ 037),ID2 = 139 (0x8b,\ 213),将文件标识为gzip格式。
(0x1f 0x8b)
我认为如果流停止只是解码文件。
答案 2 :(得分:0)
对于RFC 1950,zlib编码,您使用gzuncompress()
。