C 语言中的 PHP gzinflate()?

发布于 2024-08-05 18:48:53 字数 222 浏览 9 评论 0原文

我花了几个小时尝试在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挥剑断情 2024-08-12 18:48:53

这个zlib 使用示例非常详尽。

请注意,这里比 Python 或 PHP 更接近裸机,因此用法并不那么简单。

附录:

PHP gzinflategzdeflate 函数执行输入和输出原始 DEFLATE 格式。另一方面,zlib 函数默认使用 zlib 流,这与添加 2 字节标头和 4 字节尾部相同。

您可以切换到使用 PHP gzcompressgzuncompress 函数(它们会生成 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 and gzdeflate 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 and gzuncompress functions, which produce ZLIB format, or (if you have a recent version of zlib) use the deflateInit2 function instead of deflateInit and specify a negative value for windowBits, which requests raw DEFLATE format.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文