Section courante

A propos

Section administrative du site

UNPACK

Décompacte
PHP 4+

Syntaxe

function unpack($format,$data);

Paramètres

Nom Description
$format Ce paramètre permet d'indiquer le format du texte à traiter. Il est a noter que un ou plusieurs des spécificateurs suivants peuvent être inclus dans le format :
Spécificateur Description
* Ce spécificateur indique le quantificateur
@ Ce spécificateur indique d'insérer des codes NUL jusqu'à la position absolue dans la chaîne de caractères
a Ce spécificateur permet d'indiquer de terminer la chaîne de caractères avec des codes NULL
A Ce spécificateur indique de terminer la chaîne de caractères avec un espace
c Ce spécificateur indique d'insérer un caractère selon un format entier dans la chaîne de caractères
C Ce spécificateur indique d'insérer un caractère selon un format naturel dans la chaîne de caractères
d Ce spécificateur indique d'insérer un nombre réel de double précision dans la chaîne de caractères
f Ce spécificateur indique d'insérer un nombre réel de simple précision dans la chaîne de caractères
h Ce spécificateur indique d'insérer un code hexadécimal avec le poids faible en premier dans la chaîne de caractères
H Ce spécificateur indique d'insérer un code hexadécimal avec le poids fort en premier dans la chaîne de caractères
i Ce spécificateur indique d'insérer un nombre entier dans la chaîne de caractères
I Ce spécificateur indique d'insérer un nombre naturel dans la chaîne de caractères
l Ce spécificateur indique d'insérer un nombre entier long dans la chaîne de caractères
L Ce spécificateur indique d'insérer un nombre naturel long dans la chaîne de caractères
N Ce spécificateur indique d'insérer un nombre naturel long (32 bits d'ordre Big-Endian) dans la chaîne de caractères
n Ce spécificateur indique d'insérer un nombre de format naturel court (16 bits d'ordre Big-Endian) dans la chaîne de caractères
s Ce spécificateur indique d'insérer un nombre de format entier court (16 bits) dans la chaîne de caractères
S Ce spécificateur indique d'insérer un nombre de format naturel court (16 bits) dans la chaîne de caractères
v Ce spécificateur indique d'insérer un nombre de format naturel court (16 bits d'ordre Little-Endian) dans la chaîne de caractères
V Ce spécificateur indique d'insérer un nombre naturel long (32 bits d'ordre Little-Endian) dans la chaîne de caractères
x Ce spécificateur indique d'insérer un caractère NUL dans la chaîne de caractères
X Ce spécificateur indique d'insérer un caractère de «retour en arrière» dans la chaîne de caractères
$data Ce paramètres permettent d'indiquer les données à décompacter

Retour

Valeur Description
tableau Cette valeur permet d'indiquer les arguments décompacté.

Description

Cette fonction permet de résoudre des données binaires précédemment créer par «pack».

Exemple

L'exemple suivant permet de sortir les caractères spéciaux en leurs valeurs hexadécimales :

  1. <?php
  2. function StringSpecialCode($str) {
  3.     $data = unpack('H*', $str);
  4.     $data = $data[1];
  5.     $result = '';
  6.     for($i = 0; $i < strlen($data); $i += 2) {
  7.         $ascii = hexdec($data[$i].$data[$i + 1]);
  8.         $result .= (($ascii >= 32) && ($ascii <= 126))?chr($ascii):'\x' . $data[$i] . $data[$i+1];
  9.     }
  10.     return $result;
  11. }
  12.  
  13. echo StringSpecialCode("Montr\xe9al, Fran\xe7ais et anglais");
  14. ?>

on obtiendra le résultat suivant :

Montr\xe9al, Fran\xe7ais et anglais

Dernière mise à jour : Dimanche, le 5 avril 2015