有人可以向我解释PHP中的pack()函数吗?
问题描述:
我想知道更多关于PHP包()函数:http://fi.php.net/manual/en/function.pack.php有人可以向我解释PHP中的pack()函数吗?
我知道它包数据转换成二进制,但我不知道所有这些v为V N N c个C均值,我想知道如果有人可以善良,并给我一个实际的演示何时使用哪种格式?
在我看来,在线文档中用于更改,缺少信息。
答
那些表示希望如何您正在包装以二进制格式来表示的数据:
所以
$bin = pack("v", 1); => 0000000000000001
(16位)
其中
$bin = pack("V", 1) => 00000000000000000000000000000001
(32位)
它告诉你如何在二进制数据中表示数据。下面的代码将证明这一点。请注意,您可以将打包数据的格式与其他 格式打包。
<?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";
?>
答
正如php文档中所述,函数是从Perl的包函数中借用的。
看看Perl's documentation for pack,特别是页面底部的示例部分。 PHP的包并没有实现所有的格式,但Perl的文档功能在提供示例和解释每种格式方面做得更好。