查詢

unpack()函式—用法及示例

「 將二進位制字串解包成一個陣列 」


函式名:unpack()

適用版本:PHP 4, PHP 5, PHP 7

用法:unpack(string $format, string $data): array|false

解釋:unpack() 函式將二進位制字串解包成一個陣列。格式字串指定了資料的順序以及每個資料的型別和大小。

引數:

  • $format:格式字串,指定了資料的順序和型別。格式字串由一個或多個格式指令組成,每個指令對應一個資料元素。
  • $data:要解包的二進位制字串。

返回值:

  • 如果解包成功,將返回解包後的陣列,其中每個元素對應一個資料元素。
  • 如果解包失敗,將返回 false。

示例:

  1. 解包一個包含整數和浮點數的二進位制字串:
$data = "\x04\x00\xa0\x00\xcd\xcc\xcc\x3d";
$result = unpack("Sint/ffloat", $data);

print_r($result);

輸出:

Array
(
    [int] => 1024
    [float] => 0.1
)
  1. 解包一個包含多個整數的二進位制字串:
$data = "\x01\x00\x02\x00\x03\x00";
$result = unpack("S*", $data);

print_r($result);

輸出:

Array
(
    [1] => 1
    [2] => 2
    [3] => 3
)
  1. 解包一個包含字串和整數的二進位制字串:
$data = "\x05H\0\0\0Hello";
$result = unpack("Clength/A*string", $data);

print_r($result);

輸出:

Array
(
    [length] => 5
    [string] => Hello
)

注意事項:

  • 格式字串中的格式指令必須與實際資料的型別和順序相匹配,否則解包可能會失敗。
  • 格式指令可以包含大小和位元組順序(大端或小端)的修飾符,以適應不同的資料結構。
  • 解包的結果陣列的鍵名由格式字串中的命名指令決定,可以自定義鍵名以方便後續處理。
補充糾錯
下一個函式: unlink()函式
熱門PHP函式
分享連結