คลายข้อมูลจากสตริงไบนารี:
<?php$data = "PHP";print_r(แกะ("C*",$data));?>ฟังก์ชัน unpack() จะคลายข้อมูลจากสตริงไบนารี่
แกะ (รูปแบบข้อมูล)
พารามิเตอร์ | อธิบาย |
---|---|
รูปแบบ | ที่จำเป็น. ระบุรูปแบบที่ใช้เมื่อแตกข้อมูล ค่าที่เป็นไปได้: a - สตริงบุนวม NUL A - สตริงที่เติม SPACE h - สตริงเลขฐานสิบหก บิตลำดับต่ำก่อน H - สตริงเลขฐานสิบหก บิตลำดับสูงก่อน c - ถ่านที่ลงนาม C - ถ่านที่ไม่ได้ลงนาม s - ลงนามแบบสั้น (เสมอ 16 บิต, ลำดับไบต์ของเครื่อง) S - แบบสั้นที่ไม่ได้ลงนาม (เสมอ 16 บิต, ลำดับไบต์ของเครื่อง) n - สั้นที่ไม่ได้ลงนาม (เสมอ 16 บิต, ลำดับไบต์ขนาดใหญ่) v - สั้นที่ไม่ได้ลงนาม (เสมอ 16 บิต, ลำดับไบต์ endian เล็กน้อย) i - จำนวนเต็มลงนาม (ขึ้นอยู่กับขนาดเครื่องและลำดับไบต์) I - จำนวนเต็มที่ไม่ได้ลงนาม (ขึ้นอยู่กับขนาดเครื่องและลำดับไบต์) l - ลงนามแบบยาว (32 บิตเสมอ, ลำดับไบต์ของเครื่อง) L - ยาวที่ไม่ได้ลงชื่อ (32 บิตเสมอ, ลำดับไบต์ของเครื่อง) N - แบบยาวที่ไม่ได้ลงนาม (32 บิตเสมอ, ลำดับไบต์ขนาดใหญ่) V - ยาวที่ไม่ได้ลงนาม (32 บิตเสมอ, ลำดับไบต์ endian เล็กน้อย) f - float (ขึ้นอยู่กับขนาดเครื่องและการแสดง) d - double (ขึ้นอยู่กับขนาดเครื่องและการแสดง) x - NUL ไบต์ X - สำรองข้อมูลหนึ่งไบต์ Z - สายบุนวม NUL @ - NUL เติมตำแหน่งสัมบูรณ์ |
ข้อมูล | ที่จำเป็น. ระบุข้อมูลไบนารี่ที่จะคลายแพ็ก |
ค่าส่งคืน: | ส่งคืนอาร์เรย์หากสำเร็จ หรือคืนค่า FALSE หากล้มเหลว |
---|---|
เวอร์ชัน PHP: | 4+ |
บันทึกการอัปเดต: | ตั้งแต่ 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(แกะ("c2chars/n2int",$bin));?>