发新话题
打印

PHP unpack() 函数分析及案例

PHP unpack() 函数分析及案例

定义和用法unpack() 函数从二进制字符串对数据进行解包。 语法 unpack(format,data)
参数描述
format必需。规定在解包数据时所使用的格式。
data可选。规定被解包的二进制数据。
Parameter参数Description描述
formatRequired. Specifies the format to use when unpacking data. 必要参数。指定用于打包数据的格式 Possible values: 可用值如下:
  • a - NUL-padded string a - NUL- 字符串填满[padded string]
  • A - SPACE-padded string A - SPACE- 字符串填满[padded string]
  • h - Hex string, low nibble first h ? 十六进制字符串,低“四位元”[low nibble first]
  • H - Hex string, high nibble first H - 十六进制字符串,高“四位元”[high nibble first]
  • c - signed char c ? 带有符号的字符
  • C - unsigned char C ? 不带有符号的字符
  • s - signed short (always 16 bit, machine byte order) s ? 带有符号的短模式[short](通常是16位,按机器字节顺序)
  • S - unsigned short (always 16 bit, machine byte order) S ? 不带有符号的短模式[short](通常是16位,按机器字节排序)
  • n - unsigned short (always 16 bit, big endian byte order) n -不带有符号的短模式[short](通常是16位,按大endian字节排序)
  • v - unsigned short (always 16 bit, little endian byte order) v -不带有符号的短模式[short](通常是16位,按小endian字节排序)
  • i - signed integer (machine dependent size and byte order) i ? 带有符号的整数(由大小和字节顺序决定)
  • I - unsigned integer (machine dependent size and byte order) I ? 不带有符号的整数(由大小和字节顺序决定)
  • l - signed long (always 32 bit, machine byte order) l? 带有符号的长模式[long](通常是32位,按机器字节顺序)
  • L - unsigned long (always 32 bit, machine byte order) L ? 不带有符号的长模式[long](通常是32位,按机器字节顺序)
  • N - unsigned long (always 32 bit, big endian byte order) N ? 不带有符号的长模式[long](通常是32位,按大edian字节顺序)
  • V - unsigned long (always 32 bit, little endian byte order) V? 不带有符号的长模式[long](通常是32位,按小edian字节顺序)
  • f - float (machine dependent size and representation) f ?浮点(由大小和字节顺序决定)
  • d - double (machine dependent size and representation) d ? 双精度(由大小和字节顺序决定)
  • x - NUL byte x ? 空字节[NUL byte]
  • X - Back up one byte X- 后面一个字节[Back up one byte]
  • @ - NUL-fill to absolute position @ - NUL- 添加到一个绝对位置[absolute position]
dataRequired. Specifies the binary data to be unpacked 必要参数。指定被解压的二进制数据
案例1 上述代码将输出下面的结果: Array([1] => 80[2] => 72[3] => 80) 案例2 上述代码将输出下面的结果: Array([myint1] => 80[myint2] => 72[myint3] => 80) 案例3 上述代码将输出下面的结果: Array([chars1] => 52[chars2] => 120[int1] => 65[int2] => 66)

TOP

发新话题