它适用于以下更改:
- 在您的PHP代码中,您想使用
gzdepre
而不是gzinflate
。substr($data, 10)
如果您使用它,则不需要这些东西。我没有读过deflate与gzip的关系,但简单之处在于gzenpre
/gzdepre
匹配golanggzip
软件包的功能以及gz*
GNU命令行工具系列的功能。 - 在您的Go代码中,移动gzip.Writer.Close()调用以在从中读取之前完成
buffer
。如您在这里看到的:http : //golang.org/src/compress/gzip/gzip.go?s=6230 : 6260#L240还有一些其他内容在关闭时会写入基础流,因此在您的示例中以上您所写的内容是不完整的。(该defer
语句导致Close()
在包含函数退出后运行。)很可能Go gzip解码无论如何都会设法解码,而PHP实现却无法解码-在任何情况下,您都应正确关闭流到内存缓冲区中以确保它是在将其写到文件之前完成。
强制性注释:您将忽略Go代码中的所有错误。这段代码看起来只是一个测试,所以我不会太在意这一点,但是您绝对希望进行适当的错误处理(将问题报告给用户或函数的调用者)。



