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