pack()
是 PHP 中的一个内置函数,用于将数据转换为二进制字符串。pack()
函数接受两个参数:
- format(格式):一个字符串,用于指定如何将数据转换为二进制字符串。格式字符串由一系列的格式代码组成,每个格式代码都描述了一个输入值的处理方式。格式代码可以包括填充、签名、字节顺序等信息。
常见的格式代码有:
- a:NUL-padded string
- A:SPACE-padded string
- h:Hex string, low nibble first
- H:Hex string, high nibble first
- c:signed char
- C:unsigned char
- s:signed short (always 16 bit, machine byte order)
- S:unsigned short (always 16 bit, machine byte order)
- n:unsigned short (always 16 bit, big endian byte order)
- v:unsigned short (always 16 bit, little endian byte order)
- i:signed integer (machine dependent size and byte order)
- I:unsigned integer (machine dependent size and byte order)
- l:signed long (always 32 bit, machine byte order)
- L:unsigned long (always 32 bit, machine byte order)
- N:unsigned long (always 32 bit, big endian byte order)
- V:unsigned long (always 32 bit, little endian byte order)
- f:float (machine dependent size and representation)
- d:double (machine dependent size and representation)
- x:NUL byte
- X:Back up one byte
- @:NUL-fill to absolute position
- values(值):一个或多个要转换为二进制字符串的值。这些值可以是整数、浮点数或字符串。
示例:
$format = "A3a3"; // 3个大写字母,后面跟3个小写字母 $values = ["ABC", "xyz"]; $binary_string = pack($format, ...$values); echo $binary_string; // 输出:ABCxyz
注意:pack()
函数不会对输入值进行类型检查,因此请确保提供正确的值类型。错误的值类型可能导致不可预测的结果。