我想更多地了解PHP中的pack()
函数:https://secure.php.net/manual/en/function.pack.php
我知道它将数据打包成二进制格式,但我不确定所有这些v V n N c C
是什么意思,我想知道是否有人能好心地给我一个实际的演示,什么时候使用哪种格式?
在我看来,在线文档缺乏信息。
发布于 2009-06-12 17:20:16
它们表示您希望打包的数据以二进制格式表示的方式:
所以
$bin = pack("v", 1); => 0000000000000001
(16位)
哪里
$bin = pack("V", 1) => 00000000000000000000000000000001
(32位)
它告诉pack您希望如何以二进制数据表示数据。下面的代码将演示这一点。请注意,您可以使用与数据打包格式不同的格式进行解包。
<?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";
?>
发布于 2009-06-12 17:35:00
正如关于pack的php文档中所指出的,该函数是从Perl的pack函数中借用的。
看看Perl's documentation for pack,特别是页面底部的examples部分。PHP的包并没有实现所有的格式,但是Perl的函数文档在提供示例和解释每种格式方面做得更好。
https://stackoverflow.com/questions/987854
复制相似问题