Fonction unpack()
❮ Référence PHP Divers
Exemple
Décompresse des données à partir d'une chaîne binaire :
<?php
$data = "PHP";
print_r(unpack("C*",$data));
?>
Essayez-le vous-même »
Définition et Utilisation
La fonction unpack() décompresse des données à partir d'une chaîne binaire.
Syntaxe
Valeurs des Paramètres
| Paramètre | Description |
| format | Requis. Spécifie le format à utiliser lors de la décompression des données. Valeurs possibles : - a - chaîne remplie de NUL
- A - chaîne remplie d'espaces
- h - chaîne hexadécimale, premier nibble bas
- H - chaîne hexadécimale, premier nibble haut
- c - char signé
- C - char non signé
- s - short signé (toujours 16 bits, ordre des octets de la machine)
- S - short non signé (toujours 16 bits, ordre des octets de la machine)
- n - short non signé (toujours 16 bits, ordre des octets big endian)
- v - short non signé (toujours 16 bits, ordre des octets little endian)
- i - entier signé (taille et ordre des octets dépendants de la machine)
- I - entier non signé (taille et ordre des octets dépendants de la machine)
- l - long signé (toujours 32 bits, ordre des octets de la machine)
- L - long non signé (toujours 32 bits, ordre des octets de la machine)
- N - long non signé (toujours 32 bits, ordre des octets big endian)
- V - long non signé (toujours 32 bits, ordre des octets little endian)
- q - long long signé (toujours 64 bits, ordre des octets de la machine)
- Q - long long non signé (toujours 64 bits, ordre des octets de la machine)
- J - long long non signé (toujours 64 bits, ordre des octets big endian)
- P - long long non signé (toujours 64 bits, ordre des octets little endian)
- f - float (taille et représentation dépendantes de la machine)
- g - float (taille dépendante de la machine, ordre des octets little endian)
- G - float (taille dépendante de la machine, ordre des octets big endian)
- d - double (taille et représentation dépendantes de la machine)
- e - double (taille dépendante de la machine, ordre des octets little endian)
- E - double (taille dépendante de la machine, ordre des octets big endian)
- x - octet NUL
- X - Reculer d'un octet
- Z - chaîne remplie de NUL
- @ - remplissage NUL jusqu'à l'absolu
|
| data | Requis. Spécifie les données binaires à décompresser. |
| offset | Optionnel. Spécifie où commencer la décompression. Par défaut, c'est 0. |
Détails Techniques
| Valeur de Retour : | Renvoie un tableau en cas de succès, ou FALSE en cas d'échec. |
| Version PHP : | 4+ |
| Journal des Modifications : | PHP 7.2 - float et double prennent désormais en charge à la fois big et small endian. PHP 7.1 - Ajout du paramètre optionnel offset. PHP 5.5.0 - Les modifications suivantes ont été apportées pour la compatibilité avec Perl : Le code "a" conserve désormais les octets NUL de fin. Le code "A" supprime désormais tous les espaces ASCII de fin. Le code "Z" a été ajouté pour les chaînes remplies de NUL, et supprime les octets NUL de fin. |
Plus d'Exemples
Exemple
Décompresse des données :
<?php
$data = "PHP";
print_r(unpack("C*myint",$data));
?>
Essayez-le vous-même » Exemple
Décompresse des données :
<?php
$bin = pack("c2n2",0x1234,0x5678,65,66);
print_r(unpack("c2chars/n2int",$bin));
?>
Essayez-le vous-même »
❮ Référence PHP Divers