從二進位字串對資料進行解包:
<?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 位元組。 |
將資料解包:
<?php$data = "PHP";print_r(unpack("C*myint",$data));?>將資料解包:
<?php$bin = pack("c2n2",0x1234,0x5678,65,66);print_r(unpack("c2chars/n2int",$bin));?>