有人可以向我解释 PHP 中的 pack() 函数吗?
我想了解更多关于 PHP 中的 pack()
函数:https://secure.php.net/manual/en/function.pack.php
I would like to know more about the pack()
function in PHP: https://secure.php.net/manual/en/function.pack.php
我知道它将数据打包成二进制文件,但我不确定所有这些 v V n N c C
是什么意思,我想知道是否有人可以给我一个实用的演示何时使用哪些格式?
I know it packs data into binary, but I'm not sure what all those v V n N c C
mean and I was wondering if someone could be so kind as to give me a practical demonstration when to use which formats?
在我看来,在线文档缺少信息.
The online documentation, for a change, lacks of information, in my opinion.
推荐答案
这些表示您希望打包的数据如何以二进制格式表示:
Those represent how you want the data you are packing to be represented in binary format:
所以
$bin = pack("v", 1);=>0000000000000001
(16位)
在哪里
$bin = pack("V", 1) =>000000000000000000000000000000001
(32位)
它告诉 pack 你希望二进制数据中的数据如何表示.下面的代码将证明这一点.请注意,您可以使用不同的解包根据您打包数据的格式.
It tells pack how you want the data represented in the binary data. The code below will demonstrate this. Note that you can unpack with a different format from what you packed the data as.
<?php
$bin = pack("S", 65535);
$ray = unpack("S", $bin);
echo "UNSIGNED SHORT VAL = ", $ray[1], "
";
$bin = pack("S", 65536);
$ray = unpack("S", $bin);
echo "OVERFLOW USHORT VAL = ", $ray[1], "
";
$bin = pack("V", 65536);
$ray = unpack("V", $bin);
echo "SAME AS ABOVE BUT WITH ULONG VAL = ", $ray[1], "
";
?>
相关文章