PHP แกะ ()ฟังก์ชั่น
❮ PHP การอ้างอิงเบ็ดเตล็ด
ตัวอย่าง
แกะข้อมูลจากสตริงไบนารี:
<?php
$data = "PHP";
print_r(unpack("C*",$data));
?>
ความหมายและการใช้งาน
ฟังก์ชัน unpack() แตกข้อมูลจากสตริงไบนารี
ไวยากรณ์
ค่าพารามิเตอร์
Parameter |
Description |
format |
Required. Specifies the format to use when unpacking data.
Possible values:
- a - NUL-padded string
- A - SPACE-padded string
- h - Hex string, low nibble first
- H - Hex string, high nibble first
- c - signed char
- C - unsigned char
- s - signed short (always 16 bit, machine byte order)
- S - unsigned short (always 16 bit, machine byte order)
- n - unsigned short (always 16 bit, big endian byte order)
- v - unsigned short (always 16 bit, little endian byte order)
- i - signed integer (machine dependent size and byte order)
- I - unsigned integer (machine dependent size and byte order)
- l - signed long (always 32 bit, machine byte order)
- L - unsigned long (always 32 bit, machine byte order)
- N - unsigned long (always 32 bit, big endian byte order)
- V - unsigned long (always 32 bit, little endian byte order)
- q - signed long long (always 64 bit, machine byte order)
- Q - unsigned long long (always 64 bit, machine byte order)
- J - unsigned long long (always 64 bit, big endian byte order)
- P - unsigned long long (always 64 bit, little endian byte order)
- f - float (machine dependent size and representation)
- g - float (machine dependent size, little endian byte order)
- G - float (machine dependent size, big endian byte order)
- d - double (machine dependent size and representation)
- e - double (machine dependent size, little endian byte order)
- E - double (machine dependent size, big endian byte order)
- x - NUL byte
- X - Back up one byte
- Z - NUL-padded string
- @ - NUL-fill to absolute
|
data |
Required. Specifies the binary data to be unpacked |
offset |
Optional. Specifies where to start unpacking from. Default is 0. |
รายละเอียดทางเทคนิค
คืนมูลค่า: |
ส่งกลับอาร์เรย์เมื่อสำเร็จ หรือ FALSE เมื่อล้มเหลว |
รุ่น PHP: |
4+ |
บันทึกการเปลี่ยนแปลง: |
PHP 7.2 - float และ double รองรับ endian ทั้งขนาดใหญ่และขนาดเล็ก PHP 7.1 - เพิ่มพารามิเตอร์ออฟเซ็ตเสริม PHP 5.5.0 - มีการเปลี่ยนแปลงต่อไปนี้สำหรับความเข้ากันได้ของ Perl: ตอนนี้โค้ด "a" จะเก็บ NULL ไบต์ต่อท้ายไว้ ตอนนี้โค้ด "A" จะลบช่องว่าง ASCII ต่อท้ายทั้งหมด เพิ่มโค้ด "Z" สำหรับสตริงที่เป็นค่า NULL และลบไบต์ 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 การอ้างอิงเบ็ดเตล็ด