PHP unpack() funksjonen

Definisjon og bruk

unpack() funksjonen pakker ut data fra en binær streng.

Syntaks

unpack(format,data)
Parameter Beskrivelse
format Obligatorisk. Angir formatet som brukes når dataene pakkes ut.
data Valgfri. Angir de binære data som skal pakkes ut.

mulige verdier for format parameter:

  • a - NUL-fylt streng
  • A - SPACE-fylt streng
  • h - Hex string, lav nibble først
  • H - Hex string, høy nibble først
  • c - signed char
  • C - unsigned char
  • s - signed short (altid 16 bit, maskin byte order)
  • S - unsigned short (altid 16 bit, maskin byte order)
  • n - unsigned short (altid 16 bit, stor endian byte order)
  • v - unsigned short (altid 16 bit, liten endian byte order)
  • i - signed integer (maskinavhengig størrelse og byte order)
  • I - unsigned integer (maskinavhengig størrelse og byte order)
  • l - signed long (altid 32 bit, maskin byte order)
  • L - unsigned long (altid 32 bit, maskin byte order)
  • N - unsigned long (altid 32 bit, stor endian byte order)
  • V - unsigned long (altid 32 bit, lille endian byte order)
  • f - float (maskinafhængig størrelse og repræsentation)
  • d - dobbelt (maskinafhængig størrelse og repræsentation)
  • x - NUL byte
  • X - Tilbage en byte
  • @ - NUL-fyld til absolut position

Eksempel

Eksempel 1

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

Output:

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

Eksempel 2

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

Output:

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

Eksempel 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
)