📜  PHP | unpack()函数

📅  最后修改于: 2022-05-13 01:56:43.984000             🧑  作者: Mango

PHP | unpack()函数

unpack()函数是PHP中的一个内置函数,用于将二进制字符串解包为相应的格式。

句法:

array unpack( $format, $data, $offset )

参数:此函数接受三个参数,如上所述,如下所述:

  • $format:必填参数。它指定打包数据时要使用的格式。
    • a – 表示用 NUL 填充的字符串。
    • A – 表示用空格填充的字符串。
    • h - 表示低半字节第一个十六进制字符串。
    • H - 表示高半字节第一个十六进制字符串。
    • c – 表示有符号字符。
    • C – 表示无符号字符。
    • s – 表示有符号短(16 位,机器字节顺序)。
    • S – 表示 unsigned short(16 位,机器字节顺序)。
    • n – 表示 unsigned short(16 位,大端字节序)。
    • v – 表示 unsigned short(16 位,小端字节序)。
    • i – 表示有符号整数(取决于机器的字节顺序和大小)。
    • I – 表示无符号整数(取决于机器的字节顺序和大小)。
    • l – 表示有符号长整数(32 位,机器字节顺序)。
    • L – 表示 unsigned long(32 位,机器字节顺序)。
    • N – 表示 unsigned long(32 位,大端字节序)。
    • V – 表示 unsigned long(32 位,小端字节序)。
    • f – 表示浮点数(取决于机器的表示和大小)。
    • d – 表示双精度(取决于机器的表示和大小)。
    • x – 表示 NUL 字节。
    • X——表示备份一个字节。
    • Z - 表示用 NUL 填充的字符串。
    • @ - 表示 NUL 填充到绝对位置。
  • $data:必填参数。它指定要解包的二进制数据。
  • offset:此参数保存从解包开始的偏移量。

返回值:成功时返回包含解包元素的关联数组,失败时返回 FALSE。

注意:此函数适用于PHP 4.0.0 及更新版本。

示例 1:该程序使用 C 格式从二进制字符串中解包数据。


输出:
array(13) {
  [1]=>
  int(71)
  [2]=>
  int(69)
  [3]=>
  int(69)
  [4]=>
  int(75)
  [5]=>
  int(83)
  [6]=>
  int(70)
  [7]=>
  int(79)
  [8]=>
  int(82)
  [9]=>
  int(71)
  [10]=>
  int(69)
  [11]=>
  int(69)
  [12]=>
  int(75)
  [13]=>
  int(83)
}

示例 2:


输出:
array(4) {
  ["chars1"]=>
  int(52)
  ["chars2"]=>
  int(35)
  ["int1"]=>
  int(65)
  ["int2"]=>
  int(66)
}

示例 3:此示例使用 i 格式从二进制字符串中解包数据。


输出:
array(3) {
  [1]=>
  int(56)
  [2]=>
  int(49)
  [3]=>
  int(54)
}

参考: https://www. PHP.net/manual/en/函数.unpack。 PHP