有人可以向我解释 PHP 中的 pack() 函数吗? [英] Can someone explain to me the pack() function in PHP?

查看:25
本文介绍了有人可以向我解释 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], "
";
?>

这篇关于有人可以向我解释 PHP 中的 pack() 函数吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆