PHP unpack() functie

definitie en gebruik

De unpack() functie ontpakt gegevens uit een binair string.

syntaxis

unpack(format,data)
parameter beschrijving
format verplicht. Bepaalt het formaat dat wordt gebruikt bij het ontpakken van gegevens.
data optioneel. Bepaalt de ontpakkende binair data.

mogelijke waarden van het format parameter:

  • a - NUL-aangedrukte string
  • A - SPACE-aangedrukte string
  • h - Hex string, laag nibble eerst
  • H - Hex string, hoog nibble eerst
  • c - signed char
  • C - unsigned char
  • s - signed short (altijd 16 bits, machine byte order)
  • S - unsigned short (altijd 16 bits, machine byte order)
  • n - unsigned short (altijd 16 bits, big endian byte order)
  • v - unsigned short (altijd 16 bits, little endian byte order)
  • i - signed integer (machine afhankelijke grootte en byte order)
  • I - unsigned integer (machine afhankelijke grootte en byte order)
  • l - signed long (altijd 32 bits, machine byte order)
  • L - unsigned long (altijd 32 bits, machine byte order)
  • N - unsigned long (altijd 32 bit, big endian byte order)
  • V - unsigned long (altijd 32 bit, little endian byte order)
  • f - float (machine afhankelijke grootte en weergave)
  • d - dubbel (machine afhankelijke grootte en weergave)
  • x - NUL-byt
  • X - Een byte terugzetten
  • @ - NUL-vullen tot absolute positie

Voorbeeld

Voorbeeld 1

<?php
$data = "PHP";
print_r(unpack("C*",$data));
?>

Uitvoer:

Array
(
[1] => 80
[2] => 72
[3] => 80
)

Voorbeeld 2

<?php
$data = "PHP";
print_r(unpack("C*myint",$data));
?>

Uitvoer:

Array
(
[myint1] => 80
[myint2] => 72
[myint3] => 80
)

Voorbeeld 3

<?php
$bin = pack("c2n2",0x1234,0x5678,65,66);
print_r(unpack("c2chars/n2int",$bin));
?>

Uitvoer:

Array
(
[chars1] => 52
[chars2] => 120
[int1] => 65
[int2] => 66
)