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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
