Fonction unpack() en PHP
Définition et utilisation
La fonction unpack() dépaquette les données à partir de la chaîne binaire.
Syntaxe
unpack(format,data)
Paramètres | Description |
---|---|
format | Obligatoire. Définit le format utilisé pour dépaqueter les données. |
data | Optionnel. Définit les données binaires dépaquetées. |
Les valeurs possibles du paramètre format :
- a - Chaîne alignée à la NUL
- A - Chaîne alignée à l'espace
- h - Chaîne hexadécimale, le plus bas quartet en premier
- H - Chaîne hexadécimale, le plus haut quartet en premier
- c - signed char
- C - unsigned char
- s - signed short (toujours 16 bits, ordre des octets du processeur)
- S - unsigned short (toujours 16 bits, ordre des octets du processeur)
- n - unsigned short (toujours 16 bits, ordre des octets en ordre supérieur)
- v - unsigned short (toujours 16 bits, ordre des octets en ordre inférieur)
- i - signed integer (taille et ordre des octets dépendants de l'ordinateur)
- I - unsigned integer (taille et ordre des octets dépendants de l'ordinateur)
- l - signed long (toujours 32 bits, ordre des octets du processeur)
- L - unsigned long (toujours 32 bits, ordre des octets du processeur)
- N - unsigned long (toujours 32 bits, ordre des octets de grand à petit)
- V - unsigned long (toujours 32 bits, ordre des octets de petit à grand)
- f - float (taille et représentation machine dépendantes)
- d - double (taille et représentation machine dépendantes)
- x - Octet NUL
- X - Sauvegarde d'un octet
- @ - Remplissage NUL à la position absolue
Exemple
Exemple 1
<?php $data = "PHP"; print_r(unpack("C*",$data)); ?>
Sortie :
Array ( [1] => 80 [2] => 72 [3] => 80 )
Exemple 2
<?php $data = "PHP"; print_r(unpack("C*myint",$data)); ?>
Sortie :
Array ( [myint1] => 80 [myint2] => 72 [myint3] => 80 )
Exemple 3
<?php $bin = pack("c2n2",0x1234,0x5678,65,66); print_r(unpack("c2chars/n2int",$bin)); ?>
Sortie :
Array ( [chars1] => 52 [chars2] => 120 [int1] => 65 [int2] => 66 )