C 语言中的 PHP gzinflate()?
我花了几个小时尝试在 C 中实现 PHP gzinflate() 的行为。在 PHP 中,它只是: gzinflate($str); 在 Python 中是: 导入zlib ... 返回 zlib.decompress( 解码数据 , -15) ... 但我就是没能在 C 语言中实现它。有人能帮我吗?我真的被困住了..我尝试用 Zlib 做一些事情,但没有成功..有人明白吗?
预先感谢,
尼莫
I'm trying since several hours to implement the behaviour of PHP gzinflate() in C. In PHP it's just:
gzinflate($str);
In Python it's:
import zlib
...
return zlib.decompress( decoded_data , -15)
...
But I just don't manage to implement it in C. Can anybody help me with that? I'm really stuck.. I tried to do something with Zlib but it didn't work.. Anybody got a point?
Thanks in advance,
nemo
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个zlib 使用示例非常详尽。
请注意,这里比 Python 或 PHP 更接近裸机,因此用法并不那么简单。
附录:
PHP
gzinflate
和gzdeflate
函数执行输入和输出原始 DEFLATE 格式。另一方面,zlib 函数默认使用 zlib 流,这与添加 2 字节标头和 4 字节尾部相同。您可以切换到使用 PHP
gzcompress
和gzuncompress
函数(它们会生成 ZLIB 格式),或者(如果您有最新版本的 zlib)使用deflateInit2< /code> 函数而不是
deflateInit
并为windowBits
指定负值,这要求原始 DEFLATE 格式。This zlib usage example is very thorough.
Note that you are closer to the bare metal here than in Python or PHP, so the usage isn't as simple.
Addendum:
The PHP
gzinflate
andgzdeflate
functions perform input and output raw DEFLATE format. The zlib functions, on the other hand, work by default with zlib streams, which are the same with the addition of a 2 byte header and a 4 byte trailer.You can either switch to using the PHP
gzcompress
andgzuncompress
functions, which produce ZLIB format, or (if you have a recent version of zlib) use thedeflateInit2
function instead ofdeflateInit
and specify a negative value forwindowBits
, which requests raw DEFLATE format.