首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有人能给我解释一下PHP中的pack()函数吗?

有人能给我解释一下PHP中的pack()函数吗?
EN

Stack Overflow用户
提问于 2009-06-12 17:11:02
回答 2查看 21.2K关注 0票数 43

我想更多地了解PHP中的pack()函数:https://secure.php.net/manual/en/function.pack.php

我知道它将数据打包成二进制格式,但我不确定所有这些v V n N c C是什么意思,我想知道是否有人能好心地给我一个实际的演示,什么时候使用哪种格式?

在我看来,在线文档缺乏信息。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-12 17:20:16

它们表示您希望打包的数据以二进制格式表示的方式:

所以

$bin = pack("v", 1); => 0000000000000001 (16位)

哪里

$bin = pack("V", 1) => 00000000000000000000000000000001 (32位)

它告诉pack您希望如何以二进制数据表示数据。下面的代码将演示这一点。请注意,您可以使用与数据打包格式不同的格式进行解包。

代码语言:javascript
复制
<?php

$bin = pack("S", 65535);
$ray = unpack("S", $bin);
echo "UNSIGNED SHORT VAL = ", $ray[1], "\n";

$bin = pack("S", 65536);
$ray = unpack("S", $bin);
echo "OVERFLOW USHORT VAL = ", $ray[1], "\n";

$bin = pack("V", 65536);
$ray = unpack("V", $bin);
echo "SAME AS ABOVE BUT WITH ULONG VAL = ", $ray[1], "\n";
?>
票数 27
EN

Stack Overflow用户

发布于 2009-06-12 17:35:00

正如关于pack的php文档中所指出的,该函数是从Perl的pack函数中借用的。

看看Perl's documentation for pack,特别是页面底部的examples部分。PHP的包并没有实现所有的格式,但是Perl的函数文档在提供示例和解释每种格式方面做得更好。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/987854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档