ฟังก์ชัน unpack() ใช้สำหรับแปรกข้อมูลจากสตริงไบนารี (binary string) ตามรูปแบบที่กำหนด
รูปแบบการใช้งาน (Syntax)
unpack(format, data)
พารามิเตอร์ (Parameters)
format − รูปแบบที่จะใช้ในการแปรกข้อมูล ค่าที่เป็นไปได้มีดังนี้:
a − สตริงที่เติมด้วย NUL
A − สตริงที่เติมด้วยช่องว่าง (SPACE)
h − สตริงเฮกซาเดซิมัล เริ่มจาก nibble ต่ำ (low nibble first)
H − สตริงเฮกซาเดซิมัล เริ่มจาก nibble สูง (high nibble first)
c − signed char
C − unsigned char
s − signed short (16 บิตเสมอ, byte order ขึ้นกับเครื่อง)
S − unsigned short (16 บิตเสมอ, byte order ขึ้นกับเครื่อง)
n − unsigned short (16 บิตเสมอ, big endian)
v − unsigned short (16 บิตเสมอ, little endian)
i − signed integer (ขนาดและ byte order ขึ้นกับเครื่อง)
I − unsigned integer (ขนาดและ byte order ขึ้นกับเครื่อง)
l − signed long (32 บิตเสมอ, byte order ขึ้นกับเครื่อง)
L − unsigned long (32 บิตเสมอ, byte order ขึ้นกับเครื่อง)
N − unsigned long (32 บิตเสมอ, big endian)
V − unsigned long (32 บิตเสมอ, little endian)
f − float (ขนาดและการแสดงผลขึ้นกับเครื่อง)
d − double (ขนาดและการแสดงผลขึ้นกับเครื่อง)
x − ไบต์ NUL
X − ย้อนกลับ 1 ไบต์
Z − สตริงที่เติมด้วย NUL
@ − เติม NUL จนถึงตำแหน่งสัมบูรณ์
data − ข้อมูลไบนารีที่ต้องการแปรก
ค่าที่ส่งกลับ (Return Value)
ฟังก์ชัน unpack() ส่งคืนอาเรย์เมื่อสำเร็จ หรือ false เมื่อล้มเหลว
ตัวอย่างการใช้งาน
<?php
$var = "Jacob";
print_r(unpack("C*myint", $var));
?>
ผลลัพธ์ (Output)
Array (
[myint1] => 74
[myint2] => 97
[myint3] => 99
[myint4] => 111
[myint5] => 98
)