PHP unpack() funktion

Definition och användning

unpack() funktionen packar ut data från en binär sträng.

Syntaks

unpack(format,data)
Parameter Beskrivning
format Obligatorisk. Bestämmer formatet som används vid utpaket av data.
data Valfritt. Bestämmer de binära data som paketeras ut.

format-argumentens möjliga värden:

  • a - med NUL-fyllt sträng
  • A - med utrymme fyllt sträng
  • h - Hex-sträng, låg nibble först
  • H - Hex-sträng, hög nibble först
  • c - teckenbärande byte
  • C - osäker byte
  • s - teckenbärande kort (alltid 16 bit, maskin byte order)
  • S - osäker kort (alltid 16 bit, maskin byte order)
  • n - osäker kort (alltid 16 bit, stor byte order)
  • v - osäker kort (alltid 16 bit, liten byte order)
  • i - teckenbärande heltal (maskinberoende storlek och byte order)
  • I - osäker heltal (maskinberoende storlek och byte order)
  • l - teckenbärande lång (alltid 32 bit, maskin byte order)
  • L - osäker lång (alltid 32 bit, maskin byte order)
  • N - utan tecken long (allaways 32 bit, stor endian byte order)
  • V - utan tecken long (allaways 32 bit, liten endian byte order)
  • f - flyttal (maskinberoende storlek och representation)
  • d - dubbel (maskinberoende storlek och representation)
  • x - NUL-byte
  • X - Återsteg en byte
  • @ - NUL-fyll till absolut position

Exempel

Exempel 1

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

Utskrift:

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

Exempel 2

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

Utskrift:

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

Exempel 3

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

Utskrift:

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