PHP pack()Fonctions
Manuel de référence PHP Divers
Exemples
Empaqueter des données dans une chaîne binaire :
<?php
echo pack("C3",80,72,80);
?>
echo pack("C3",80,72,80);
?>
Exécuter l'exemple »
Définition et utilisation
La fonction pack() empaquette des données dans une chaîne binaire.
Ceci est très utile pour la transmission réseau, le traitement de fichiers et le stockage de données, en particulier lorsqu'un contrôle précis du format des données et de l'ordre des octets est nécessaire.
Syntaxe
string pack(string $format, mixed $arg1 [, mixed $arg2, ...])
$format: Une chaîne qui spécifie comment les arguments donnésarg1,arg2, ... sont empaquetés. Chaque caractère représente un type de données et une taille.$arg1,$arg2, ... : Les données à empaqueter. Peuvent être des entiers, des flottants ou des chaînes, etc.
La fonction pack() renvoie la chaîne binaire empaquetée, ou false si une erreur se produit.
| Parameters | Description |
|---|---|
| format | Obligatoire. Spécifie le format utilisé lors de l'empaquetage des données. Valeurs possibles : Entiers:
Nombres à virgule flottante:
Chaînes de caractères et autres types:
|
| args+ | Facultatif. Spécifie un ou plusieurs arguments à empaqueter. |
Détails techniques
| Valeur de retour : | Retourne une chaîne binaire contenant les données. |
|---|---|
| Version PHP : | 4+ |
| Journal des modifications : | Le code « Z » a été ajouté dans PHP 5.5 et a la même fonctionnalité que « a », utilisé pour la compatibilité Perl. |
Plus d’exemples
Voici quelques exemples utilisant la fonction pack().
Empaqueter un entier court non signé et une chaîne :
Exemple
$data = pack('S', 65535); // Empaqueter un entier court non signé 65535
echo bin2hex($data); // Sortie : ffff
echo bin2hex($data); // Sortie : ffff
Empaqueter un entier long signé et une chaîne :
Exemple
$data = pack('l', -2147483648); // Empaqueter un entier long signé -2147483648
echo bin2hex($data); // Sortie : 0000000080000000
echo bin2hex($data); // Sortie : 0000000080000000
Empaqueter un float et une chaîne :
Exemple
$data = pack('f', 3.14); // Empaqueter un float 3.14
echo bin2hex($data); // Sortie : 4048f5c3
echo bin2hex($data); // Sortie : 4048f5c3
Notes
pack()La fonction est un outil puissant pour convertir des données dans un format binaire, mais vous devez vous assurer que vous comprenez la signification et l'utilisation de chaque caractère dans le format requis.- Problème d'endianness (ordre des octets) : Sur différents systèmes, les entiers et les nombres à virgule flottante peuvent être représentés différemment. Vous pouvez utiliser
pack()etunpack()la fonction pour garantir une transmission et une analyse correctes des données entre différents systèmes. - Vous pouvez utiliser
bin2hex()la fonction pour convertir des données binaires en une chaîne hexadécimale pour la sortie et le débogage.
Manuel de référence PHP divers Autres extensions