PHP unpack()-funktio

Määrittely ja käyttö

unpack()-funktio purkaa binäärisarjoista dataa.

Syntaksi

unpack(format,data)
Parametrit Kuvaus
format Välttämätön. Määrittää pakatun datan käytettävän formatin.
data Valinnainen. Määrittää pakatut binääritiedot.

format-parametrien mahdolliset arvot:

  • a - NUL-täytetty merkkijono
  • A - Tyhjillä välilyönneillä täytetty merkkijono
  • h - Hex string, matalin nibble ensin
  • H - Hex string, korkein nibble ensin
  • c - signed char
  • C - unsigned char
  • s - signed short (aina 16 bittiä, koneen bittijärjestys)
  • S - unsigned short (aina 16 bittiä, koneen bittijärjestys)
  • n - unsigned short (aina 16 bittiä, suuri bitti ensin)
  • v - unsigned short (aina 16 bittiä, pieni bitti ensin)
  • i - signed integer (koneesta riippuvainen koko ja bittijärjestys)
  • I - unsigned integer (koneesta riippuvainen koko ja bittijärjestys)
  • l - signed long (aina 32 bittiä, koneen bittijärjestys)
  • L - unsigned long (aina 32 bittiä, koneen bittijärjestys)
  • N - unsigned long (aina 32 bittiä, suuri suuntaus)
  • V - unsigned long (aina 32 bittiä, pieni suuntaus)
  • f - liukuluku (koneesta riippuvainen koko ja esitystapa)
  • d - kaksinkertainen (koneesta riippuvainen koko ja esitystapa)
  • x - NUL-tietolaatikko
  • X - varmuuskopioi yksi tietolaatikko
  • @ - tyhjennä NUL-kohta absoluuttiseen sijaintiin

Esimerkki

Esimerkki 1

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

Tuloste:

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

Esimerkki 2

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

Tuloste:

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

Esimerkki 3

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

Tuloste:

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