Funzione unpack() in PHP
Definizione e uso
La funzione unpack() decodifica i dati da una stringa binaria.
Sintassi
unpack(format,data)
Parametro | Descrizione |
---|---|
format | Obbligatorio. Specifica il formato utilizzato per decomprimere i dati. |
data | Opzionale. Specifica i dati binari da decomprimere. |
Valori possibili per il parametro format:
- a - Stringa riempita con NUL
- A - Stringa riempita con spazi
- h - Stringa esadecimale, nibble basso per primo
- H - Stringa esadecimale, nibble alto per primo
- c - signed char
- C - unsigned char
- s - signed short (sempre 16 bit, ordine di byte macchina)
- S - unsigned short (sempre 16 bit, ordine di byte macchina)
- n - unsigned short (sempre 16 bit, ordine di byte big endian)
- v - unsigned short (sempre 16 bit, ordine di byte little endian)
- i - signed integer (dimensione e ordine di byte dipendenti dal sistema)
- I - unsigned integer (dimensione e ordine di byte dipendenti dal sistema)
- l - signed long (sempre 32 bit, ordine di byte macchina)
- L - unsigned long (sempre 32 bit, ordine di byte macchina)
- N - unsigned long (sempre 32 bit, ordine di byte big endian)
- V - unsigned long (sempre 32 bit, ordine di byte little endian)
- f - float (dimensione e rappresentazione a dipendenza del sistema)
- d - double (dimensione e rappresentazione a dipendenza del sistema)
- x - byte NUL
- X - tornare indietro di un byte
- @ - riempimento NUL fino alla posizione assoluta
Esempio
Esempio 1
<?php $data = "PHP"; print_r(unpack("C*",$data)); ?>
Output:
Array ( [1] => 80 [2] => 72 [3] => 80 )
Esempio 2
<?php $data = "PHP"; print_r(unpack("C*myint",$data)); ?>
Output:
Array ( [myint1] => 80 [myint2] => 72 [myint3] => 80 )
Esempio 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 )