当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP unpack()用法及代码示例


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

用法:

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

参数:此函数接受上述和以下所述的三个参数:


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

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

注意:此函数可用于PHP 4.0.0和更高版本。

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

<?php 
  
var_dump( unpack("C*", "GEEKSFORGEEKS")); 
?>
输出:
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:

<?php 
  
$binary_data = pack("c2n2", 0x1634, 0x3623, 65, 66); 
var_dump(unpack("c2chars/n2int", $binary_data)); 
?>
输出:
array(4) {
  ["chars1"]=>
  int(52)
  ["chars2"]=>
  int(35)
  ["int1"]=>
  int(65)
  ["int2"]=>
  int(66)
}

示例3:本示例使用i格式从二进制字符串解压缩数据。

<?php 
  
$binary_data = pack("i3", 56, 49, 54); 
var_dump(unpack("i3", $binary_data)); 
?>
输出:
array(3) {
  [1]=>
  int(56)
  [2]=>
  int(49)
  [3]=>
  int(54)
}

参考: https://www.php.net/manual/en/function.unpack.php



相关用法


注:本文由纯净天空筛选整理自gekcho大神的英文原创作品 PHP | unpack() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。