定義和用法
unpack()
函數從二進製字符串中解包數據。
實例
例子1
從二進製字符串中解包數據:
<?php
$data = "PHP" ;
print_r ( unpack ( "C*" , $data ) ) ;
?>
親自試一試
例子2
解包數據:
<?php
$data = "PHP" ;
print_r ( unpack ( "C*myint" , $data ) ) ;
?>
親自試一試
例子3
解包數據:
<?php
$bin = pack ( "c2n2" , 0x1234 , 0x5678 , 65 , 66 ) ;
print_r ( unpack ( "c2chars/n2int" , $bin ) ) ;
?>
親自試一試
文法
unpack ( format , data , offset )
參數 |
描述 |
format |
必需。指定解包數據時使用的格式。 |
data
|
可選。指定要解包的二進制數據。 |
offset
|
可選。指定從哪裡開始解包。默認是0。 |
format參數的可能值:
- a - NUL-padded 字符串
- A - SPACE-padded 字符串
- h - Hex 字符串,低半字節在前
- H - Hex 字符串,高半字節在前
- 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-padded 字符串
- @ - NUL-fill 到絕對位置