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
相关用法
- p5.js sin()用法及代码示例
- PHP tan( )用法及代码示例
- d3.js d3.hsl()用法及代码示例
- p5.js tan()用法及代码示例
- PHP key()用法及代码示例
- p5.js log()用法及代码示例
- p5.js cos()用法及代码示例
- PHP pos()用法及代码示例
- PHP end()用法及代码示例
- PHP each()用法及代码示例
- p5.js second()用法及代码示例
注:本文由纯净天空筛选整理自gekcho大神的英文原创作品 PHP | unpack() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。