Home » PHP » Fungsi unpack() PHP

Fungsi unpack() PHP

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Section Artikel

Definisi dan Penggunaan

Fungsi unpack() digunakan untuk membongkar data dari string biner.

Syntax

unpack(format,data)

Nilai Parameter

ParameterDeskripsi
formatRequired. 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
dataRequired. Menentukan data biner yang akan dibuka
offsetOptional. Menentukan dari mana untuk mulai membongkar. Default-nya adalah 0.

Detail Teknis

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 )

You may also like