PHP unpack() 函式
❮ PHP Misc 參考文獻
示例
從二進位制字串解包資料
<?php
$data = "PHP";
print_r(unpack("C*",$data));
?>
自己動手試一試 »
定義和用法
unpack() 函式從二進位制字串解包資料。
語法
引數值
引數 |
描述 |
format |
必需。指定解包資料時使用的格式。 可能的值
- a - NUL 填充字串
- A - 空格填充字串
- h - 十六進位制字串,低四位在前
- H - 十六進位制字串,高四位在前
- 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 填充字串
- @ - NUL 填充到絕對位置
|
data |
必需。指定要解包的二進位制資料 |
offset |
可選。指定從何處開始解包。預設為 0。 |
技術詳情
返回值 |
成功時返回陣列,失敗時返回 FALSE。 |
PHP 版本 |
4+ |
更新日誌 |
PHP 7.2 - float 和 double 現在支援大端和小端。 PHP 7.1 - 添加了可選的 offset 引數。 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));
?>
自己動手試一試 »
❮ PHP Misc 參考文獻
W3schools 學習路徑
跟蹤您的進度 - 免費!