举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > php unpack函数 PHP unpack() 函数

php unpack函数 PHP unpack() 函数

2023-03-15 07:18 PHP教程

php unpack函数 PHP unpack() 函数

php unpack函数

PHP unpack函数是一个用于将二进制数据转换为可读格式的函数,它可以将二进制数据转换为字符串、整型、浮点型、布尔型等格式。它的作用是将一个字符串中的字节序列解释成一系列变量,并将这些变量以数组的形式返回。

$data = pack("nvc*", 0x1234, 0x5678, 65, 66); 
$unpacked_data = unpack("n2num/vchar/c*rest", $data); 
print_r($unpacked_data); 

上面的代码中,我们使用 pack 函数将一些数据打包成了一个字符串,然后使用 unpack 函数将其解包,并将其中的内容以数组形式返回。在上面的例子中,unpack 函数会返回一个包含 num1、num2、char 和 rest 的关联数组,其中 num1 和 num2 是 16 位无符号整型(n2),char 是 8 位无符号字节型(v),rest 是剩余所有字节的 8 位无符号字节型序列。

PHP unpack() 函数

PHP unpack() 函数

PHP Misc 参考手册 PHP Misc 参考手册

实例

从二进制字符串对数据进行解包:

<?php
$data = "PHP";
print_r(unpack("C*",$data));
?>

运行实例 »

定义和用法

unpack() 函数从二进制字符串对数据进行解包。


语法

unpack(format,data)

参数 描述
format 必需。规定在解包数据时所使用的格式。

可能的值:

  • a - NUL 填充的字符串
  • A - SPACE 填充的字符串
  • h - 十六进制字符串,低位在前
  • H - 十六进制字符串,高位在前
  • c - signed char
  • C - unsigned char
  • s - signed short(总是16位, machine 字节顺序)
  • S - unsigned short(总是16位, machine 字节顺序)
  • n - unsigned short(总是16位, big endian 字节顺序)
  • v - unsigned short(总是16位, little endian 字节顺序)
  • i - signed integer(取决于 machine 的大小和字节顺序)
  • I - unsigned integer(取决于 machine 的大小和字节顺序)
  • l - signed long(总是32位, machine 字节顺序)
  • L - unsigned long(总是32位, machine 字节顺序)
  • N - unsigned long(总是32位, big endian 字节顺序)
  • V - unsigned long(总是32位, little endian 字节顺序)
  • f - float(取决于 machine 的大小和表示)
  • d - double(取决于 machine 的大小和表示)
  • x - NUL 字节
  • X - 备份一个字节
  • Z - NUL 填充的字符串
  • @ - NUL 填充绝对位置
data 必需。规定被解包的二进制数据。

技术细节

返回值: 如果成功则返回数组,如果失败则返回 FALSE。
PHP 版本: 4+
更新日志: 自 PHP 5.5.0 起,为 Perl 兼容进行了下列更改:

"a" 代码保留尾随 NULL 字节。
"A" 代码删除所有尾随 ASCII 空白。
新增 "Z" 代码用于 NUL 填充的字符串,并移除尾随 NULL 字节。


更多实例

实例 1

对数据进行解包:

<?php
$data = "PHP";
print_r(unpack("C*myint",$data));
?>

运行实例 »

实例 2

对数据进行解包:

<?php
$bin = pack("c2n2",0x1234,0x5678,65,66);
print_r(unpack("c2chars/n2int",$bin));
?>

运行实例 »


PHP Misc 参考手册 PHP Misc 参考手册
阅读全文
以上是编程学为你收集整理的php unpack函数 PHP unpack() 函数全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部