Hàm unpack() của PHP

Định nghĩa và cách sử dụng

Hàm unpack() từ chuỗi binaire giải nén dữ liệu.

Cú pháp

unpack(format,data)
Tham số Mô tả
format Bắt buộc. Định nghĩa định dạng được sử dụng để giải nén dữ liệu.
data Tùy chọn. Định nghĩa dữ liệu binaire được giải nén.

Các giá trị có thể của tham số format:

  • a - chuỗi được lấp đầy bằng NUL
  • A - chuỗi được lấp đầy bằng SPACE
  • h - chuỗi Hex, byte thấp đầu tiên
  • H - chuỗi Hex, byte cao đầu tiên
  • c - signed char
  • C - unsigned char
  • s - signed short (luôn 16 bit, thứ tự byte của máy)
  • S - unsigned short (luôn 16 bit, thứ tự byte của máy)
  • n - unsigned short (luôn 16 bit, thứ tự byte lớn)
  • v - unsigned short (luôn 16 bit, thứ tự byte nhỏ)
  • i - signed integer (kích thước và thứ tự byte của máy phụ thuộc)
  • I - unsigned integer (kích thước và thứ tự byte của máy phụ thuộc)
  • l - signed long (luôn 32 bit, thứ tự byte của máy)
  • L - unsigned long (luôn 32 bit, thứ tự byte của máy)
  • N - unsigned long (luôn 32 bit, thứ tự byte lớn)
  • V - unsigned long (luôn 32 bit, thứ tự byte nhỏ)
  • f - float (kích thước và biểu diễn máy phụ thuộc)
  • d - double (kích thước và biểu diễn máy phụ thuộc)
  • x - Byte NUL
  • X - Trở lại một byte
  • @ - Điền NUL đến vị trí tuyệt đối

Mô hình

Ví dụ 1

<?php
$data = "PHP";
print_r(unpack("C*",$data));
?>

Kết quả xuất ra:

Mảng
(
[1] => 80
[2] => 72
[3] => 80
)

Ví dụ 2

<?php
$data = "PHP";
print_r(unpack("C*myint",$data));
?>

Kết quả xuất ra:

Mảng
(
[myint1] => 80
[myint2] => 72
[myint3] => 80
)

Ví dụ 3

<?php
$bin = pack("c2n2",0x1234,0x5678,65,66);
print_r(unpack("c2chars/n2int",$bin));
?>

Kết quả xuất ra:

Mảng
(
[chars1] => 52
[chars2] => 120
[int1] => 65
[int2] => 66
)