Php/func misc unpack

来自菜鸟教程
跳转至:导航、​搜索

PHP unpack()函数

Mi PHP其他参考

从二进制字符串解压缩数据:

 <?php
$data = "PHP";

print_r(unpack("C*",$data));

 ?>

定义和用法

unpack()函数从二进制字符串解压缩数据。

句法

unpack(format,data)

参数值

参数 描述
format

需要。指定解压缩数据时使用的格式。 可能的值:

  • 一个-NUL填充的字符串
  • A-空格键的字符串
  • h-十六进制字符串,低位优先
  • H-十六进制字符串,高位优先
  • c-签名字符
  • C-无符号字符
  • s-带符号的短整数(总是16位,机器字节顺序)
  • S-无符号短整数(总是16位,机器字节顺序)
  • n-无符号短整数(总是16位,大字节序)
  • v-无符号短整数(始终为16位,低字节序)
  • i-有符号整数(与机器有关的大小和字节顺序)
  • I-无符号整数(与机器有关的大小和字节顺序)
  • l-长整型(始终为32位,机器字节顺序)
  • L-无符号长整数(始终为32位,机器字节顺序)
  • N-无符号长整数(始终为32位,大字节序)
  • V-无符号长整数(始终为32位,低字节序)
  • q-带符号long long(始终为64位,机器字节顺序)
  • Q-无符号长整型(始终为64位,机器字节顺序)
  • J-无符号长长(始终为64位,大字节序)
  • P-无符号长整型(始终为64位,低字节序)
  • f-浮点(取决于机器的大小和表示形式)
  • g-浮点(取决于机器的大小,小尾数字节顺序)
  • G-浮点数(取决于机器大小,大字节序)
  • d-双精度(与机器有关的大小和表示形式)
  • e-双精度(机器相关大小,小尾数字节顺序)
  • E-双精度(机器相关大小,大字节序)
  • x-NUL字节
  • X-备份一个字节
  • Z-NUL填充的字符串
  • @-NUL填充为绝对
data 需要。指定要解压缩的二进制数据
抵销 可选的。指定从哪里开始解压缩。默认值为0。

技术细节

返回值: 如果成功,则返回一个数组;如果失败,则返回FALSE。
PHP版本: 4+
更新日志: PHP 7.2-float和double现在支持大小端字节。

PHP 7.1-添加了可选的offset参数。
PHP 5.5.0-为Perl兼容性进行了以下更改:现在,“ a”代码保留了尾随的NULL字节。
现在,“ A”代码将剥离所有尾随的ASCII空格。
已为填充NULL的字符串添加了“ Z”代码,并删除了结尾的NULL字节。

更多例子

解压缩数据:

 <?php
$data = "PHP";

print_r(unpack("C*myint",$data));

 ?>

解压缩数据:

 <?php
$bin = pack("c2n2",0x1234,0x5678,65,66);

print_r(unpack("c2chars/n2int",$bin));

 ?>

Mi PHP其他参考