PHP pack() 函数
定义和用法
pack()
函数将数据打包成二进制字符串。
实例
例子 1
将数据打包成二进制字符串:
<?php
echo pack("C3",80,72,80);
?>
例子解释:
pack("C*", 80, 72, 80) 将三个无符号字符(80, 72, 80)打包成一个二进制字符串。C* 表示打包一个或多个无符号字符。在这个例子中,输出将是包含这三个字符的二进制字符串。注意,字符 80、72 和 80 在 ASCII 表中分别对应于字符 'P'、'H' 和 'P',因此输出将是字符串 "PHP"。
例子 2
<?php
echo pack("C*",80,72,80);
?>
语法
pack(format,args+)
参数 | 描述 |
---|---|
format | 必需。指定打包数据时使用的格式。 |
args+ | 可选。指定一个或多个要打包的参数。 |
format 参数的可能值:
- a - NUL 填充的字符串
- A - SPACE 填充的字符串
- h - 十六进制字符串,低位在前
- H - 十六进制字符串,高位在前
- c - 有符号字符
- C - 无符号字符
- s - 有符号短整型(总是 16 位,机器字节序)
- S - 无符号短整型(总是 16 位,机器字节序)
- n - 无符号短整型(总是 16 位,大端字节序)
- v - 无符号短整型(总是 16 位,小端字节序)
- i - 有符号整型(机器相关的大小和字节序)
- I - 无符号整型(机器相关的大小和字节序)
- l - 有符号长整型(总是 32 位,机器字节序)
- L - 无符号长整型(总是 32 位,机器字节序)
- N - 无符号长整型(总是 32 位,大端字节序)
- V - 无符号长整型(总是 32 位,小端字节序)
- q - 有符号长长整型(总是 64 位,机器字节序)
- Q - 无符号长长整型(总是 64 位,机器字节序)
- J - 无符号长长整型(总是 64 位,大端字节序)
- P - 无符号长长整型(总是 64 位,小端字节序)
- f - 浮点数(机器相关的大小和表示)
- g - 浮点数(机器相关的大小,小端字节序)
- G - 浮点数(机器相关的大小,大端字节序)
- d - 双精度浮点数(机器相关的大小和表示)
- e - 双精度浮点数(机器相关的大小,小端字节序)
- E - 双精度浮点数(机器相关的大小,大端字节序)
- x - NUL 字节
- X - 回退一个字节
- Z - NUL 填充的字符串
- @ - NUL 填充到绝对位置
技术细节
返回值: | 返回包含数据的二进制字符串。 |
---|---|
PHP 版本: | 4+ |
PHP 更新日志: |
8.0.0 - 此函数不再在失败时返回 false。 PHP 7.2 - 浮点数和双精度浮点数现在同时支持大端和小端。 PHP 7.0.15 - 添加了 "E"、"e"、"G"、"g" 代码。 PHP 5.6.3 - 添加了 "Q"、"q"、"J"、"P" 代码。 PHP 5.5 - 添加了 "Z" 代码(与 Perl 兼容,与 "a" 功能相同)。 |