PHP unpack() -Funktion
Definition und Verwendung
Die unpack() -Funktion entpackt Daten aus binären Zeichenketten.
Syntax
unpack(format,data)
Parameter | Beschreibung |
---|---|
format | notwendig. Bestimmt das Format, das bei der Entpackung der Daten verwendet wird. |
data | optional. Bestimmt die zu entpackenden binären Daten. |
mögliche Werte für das Parameterformat:
- a - mit NUL aufgefüllte Zeichenkette
- A - mit Leerzeichen aufgefüllte Zeichenkette
- h - Hex-Zeichenkette, niedriger Nibble zuerst
- H - Hex-Zeichenkette, hoher Nibble zuerst
- c - signed char
- C - unsigned char
- s - signed short (immer 16 Bit, Maschinenbyte-Reihenfolge)
- S - unsigned short (immer 16 Bit, Maschinenbyte-Reihenfolge)
- n - unsigned short (immer 16 Bit, Big-Endian Byte-Reihenfolge)
- v - unsigned short (immer 16 Bit, Little-Endian Byte-Reihenfolge)
- i - signed integer (maschinenabhängige Größe und Byte-Reihenfolge)
- I - unsigned integer (maschinenabhängige Größe und Byte-Reihenfolge)
- l - signed long (immer 32 Bit, Maschinenbyte-Reihenfolge)
- L - unsigned long (immer 32 Bit, Maschinenbyte-Reihenfolge)
- N - unsigned long (immer 32 Bit, big endian Byte-Reihenfolge)
- V - unsigned long (immer 32 Bit, little endian Byte-Reihenfolge)
- f - float (maschinenabhängige Größe und Darstellung)
- d - double (maschinenabhängige Größe und Darstellung)
- x - NUL Byte
- X - Ein Byte zurückgehen
- @ - NUL-auffüllen bis zur absoluten Position
Beispiel
Beispiel 1
<?php $data = "PHP"; print_r(unpack("C*",$data)); ?>
Ausgabe:
Array ( [1] => 80 [2] => 72 [3] => 80 )
Beispiel 2
<?php $data = "PHP"; print_r(unpack("C*myint",$data)); ?>
Ausgabe:
Array ( [myint1] => 80 [myint2] => 72 [myint3] => 80 )
Beispiel 3
<?php $bin = pack("c2n2",0x1234,0x5678,65,66); print_r(unpack("c2chars/n2int",$bin)); ?>
Ausgabe:
Array ( [chars1] => 52 [chars2] => 120 [int1] => 65 [int2] => 66 )