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

unpack(format,data)

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