二十五岁时我们都一样愚蠢、多愁善感,喜欢故弄玄虚,可如果不那样的话,五十岁时也就不会如此明智。
标题:PHP unpack() 函数
PHP unpack() 函数
实例
从二进制字符串对数据进行解包:
<?php $data = "PHP"; print_r(unpack("C*",$data)); ?>定义和用法
unpack() 函数从二进制字符串对数据进行解包。
语法
unpack(format,data)
参数 描述 _format_ 必需。规定在解包数据时所使用的格式。 可能的值: * a - NUL 填充的字符串 * A - SPACE 填充的字符串 * h - 十六进制字符串,低位在前 * H - 十六进制字符串,高位在前 * c - signed char * C - unsigned char * s - signed short(总是16位, machine 字节顺序) * S - unsigned short(总是16位, machine 字节顺序) * n - unsigned short(总是16位, big endian 字节顺序) * v - unsigned short(总是16位, little endian 字节顺序) * i - signed integer(取决于 machine 的大小和字节顺序) * I - unsigned integer(取决于 machine 的大小和字节顺序) * l - signed long(总是32位, machine 字节顺序) * L - unsigned long(总是32位, machine 字节顺序) * N - unsigned long(总是32位, big endian 字节顺序) * V - unsigned long(总是32位, little endian 字节顺序) * f - float(取决于 machine 的大小和表示) * d - double(取决于 machine 的大小和表示) * x - NUL 字节 * X - 备份一个字节 * Z - NUL 填充的字符串 * @ - NUL 填充绝对位置 data 必需。规定被解包的二进制数据。 技术细节
返回值: 如果成功则返回数组,如果失败则返回 FALSE。 PHP 版本: 4+ 更新日志: 自 PHP 5.5.0 起,为 Perl 兼容进行了下列更改: "a" 代码保留尾随 NULL 字节。 "A" 代码删除所有尾随 ASCII 空白。 新增 "Z" 代码用于 NUL 填充的字符串,并移除尾随 NULL 字节。 实例 1
对数据进行解包:
<?php $data = "PHP"; print_r(unpack("C*myint",$data)); ?>运行实例 »
实例 2
对数据进行解包:
<?php $bin = pack("c2n2",0x1234,0x5678,65,66); print_r(unpack("c2chars/n2int",$bin)); ?>运行实例 »