Dans la programmation PHP, les tableaux d'octets (tableaux d'octets) sont souvent utilisés comme types de données, et les chaînes hexadécimales sont souvent utilisées pour représenter des données binaires. Le processus de conversion d'une chaîne hexadécimale en un tableau d'octets est un problème que nous rencontrons souvent lors du traitement de données binaires. Dans cet article, nous verrons comment convertir une chaîne hexadécimale en tableau d'octets en PHP.
Dans les ordinateurs, les nombres binaires sont le type de données le plus basique, mais écrire des nombres binaires est très fastidieux. Afin de faciliter l'écriture et la lecture, nous convertissons généralement les nombres binaires en nombres hexadécimaux pour faciliter la distinction et l'identification lors de l'écriture et de la lecture. Les nombres hexadécimaux peuvent être directement représentés par des caractères ASCII, tels que 0x1A, 0xFF, 0x2B, etc.
Les nombres hexadécimaux peuvent être facilement convertis en nombres binaires. Par exemple, 0x1A est représenté par 0001 1010 et 0xFF est représenté par 1111 1111. Lorsque nous transmettons des données à l'ordinateur, nous devons souvent convertir les données en bits binaires, puis les transmettre. Cependant, il n'est pas pratique pour nous d'écrire des données binaires directement dans le code, c'est pourquoi les nombres binaires sont souvent exprimés sous forme de chaînes hexadécimales pour la transmission.
En PHP, il existe de nombreuses façons de convertir des chaînes hexadécimales en tableaux d'octets. Ci-dessous, nous en présenterons deux :
2.1 Utiliser pack Et la fonction hexdec
fonction pack. peut charger les valeurs d'un tableau dans une chaîne binaire selon le format spécifié, et la fonction hexdec peut convertir une chaîne hexadécimale en un nombre décimal.
Les étapes de fonctionnement spécifiques sont les suivantes :
$hex_str = "12AB34CD"; $len = strlen($hex_str); $ret = array(); for ($i=0; $i<$len; $i+=2) { array_push($ret, hexdec(substr($hex_str, $i, 2))); }
Le code ci-dessus utilise une boucle pour traiter tous les deux caractères comme un nombre hexadécimal, puis utilise la fonction hexdec pour convertir la chaîne hexadécimale en décimale et la stocker dans le tableau d'octets.
2.2 Utiliser bin2hex et les fonctions de décompression
La fonction bin2hex peut convertir une chaîne binaire en chaîne hexadécimale, et la fonction unpack peut convertir une chaîne binaire en tableau.
Les étapes spécifiques sont les suivantes :
$hex_str = "12AB34CD"; $bin_str = hex2bin($hex_str); $ret = unpack("C*", $bin_str);
Le code ci-dessus convertit la chaîne hexadécimale en chaîne binaire via la fonction hex2bin, puis convertit la chaîne binaire en un tableau d'octets via la fonction unpack.
Les deux méthodes ci-dessus peuvent convertir des chaînes hexadécimales en tableaux d'octets. La méthode spécifique à choisir peut être envisagée en fonction des besoins réels et de la surcharge de mémoire. Dans les applications pratiques, nous devons utiliser des tableaux d'octets pour le traitement des données binaires, qui sont largement utilisés dans des scénarios tels que l'analyse de fichiers non texte et la transmission réseau de fichiers binaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!