Fungsi unpack()
digunakan untuk membongkar data dari string biner.
unpack(format,data)
Parameter | Deskripsi |
---|---|
format | Required. Menentukan format yang akan digunakan saat mengemas data. Nilai yang memungkinkan: a – string berlapis NUL A – string dengan bantalan SPASI h – String hex, camilan rendah dulu H – String hex, gigit tinggi dulu c – karakter bertanda tangan C – karakter unsigned s – bertanda tangan pendek (selalu 16 bit, urutan byte mesin) S – unsigned short (selalu 16 bit, urutan byte mesin) n – unsigned short (selalu 16 bit, urutan byte big endian) v – unsigned short (selalu 16 bit, urutan byte little endian) i – signed integer (ukuran tergantung mesin dan urutan byte) I – unsigned integer (ukuran tergantung mesin dan urutan byte) l – bertanda tangan panjang (selalu 32 bit, urutan byte mesin) L – unsigned long (selalu 32 bit, urutan byte mesin) N – unsigned long (selalu 32 bit, urutan byte big endian) V – unsigned long (selalu 32 bit, urutan byte little endian) q – panjang bertanda tangan (selalu 64 bit, urutan byte mesin) Q – unsigned long long (selalu 64 bit, urutan byte mesin) J – unsigned long long (selalu 64 bit, urutan byte big endian) P – unsigned long long (selalu 64 bit, urutan byte little endian) f – float (ukuran dan representasi yang bergantung pada mesin) g – float (ukuran tergantung mesin, urutan byte little endian) G – float (ukuran tergantung mesin, urutan byte big endian) d – double (ukuran dan representasi yang bergantung pada mesin) e – double (ukuran tergantung mesin, urutan byte little endian) E – double (ukuran tergantung mesin, urutan byte big endian) x – NUL byteX – Cadangkan satu byte Z – string berlapis NUL @ – NUL-isi ke posisi absolut |
data | Required. Menentukan data biner yang akan dibuka |
offset | Optional. Menentukan dari mana untuk mulai membongkar. Default-nya adalah 0. |
Return Value: | Mengembalikan array saat berhasil atau FALSE saat gagal. |
---|---|
PHP Version: | 4+ |
Changelog: | PHP 7.2 – float dan double sekarang mendukung endian besar dan kecil. PHP 7.1 – Menambahkan parameter offset opsional. PHP 5.5.0 – Perubahan berikut dibuat untuk kompatibilitas Perl: Kode “a” sekarang mempertahankan byte NULL tertinggal. Kode “A” sekarang menghapus semua spasi ASCII yang tertinggal. Kode “Z” telah ditambahkan untuk string berlapis NULL, dan menghapus byte NULL yang tertinggal. |
Contoh 1
Buka paket data dari string biner:
<?php $data = "PHP"; print_r(unpack("C*",$data)); ?> // Output : Array ( [1] => 80 [2] => 72 [3] => 80 )
Contoh 2
<?php $data = "PHP"; print_r(unpack("C*myint",$data)); ?> // Output : Array ( [myint1] => 80 [myint2] => 72 [myint3] => 80 )
Contoh 3
<?php $bin = pack("c2n2",0x1234,0x5678,65,66); print_r(unpack("c2chars/n2int",$bin)); ?> // Output : Array ( [chars1] => 52 [chars2] => 120 [int1] => 65 [int2] => 66 )