Maison  >  Article  >  développement back-end  >  Comment convertir un hexadécimal en fonction de chaîne en php

Comment convertir un hexadécimal en fonction de chaîne en php

PHPz
PHPzoriginal
2023-04-19 09:15:181038parcourir

PHP, en tant que langage de programmation côté serveur, dispose d'une riche bibliothèque de fonctions pour permettre aux développeurs de se développer rapidement. PHP fournit une fonction pour convertir l'hexadécimal en chaîne. Présentons cette fonction ci-dessous.

La fonction pour convertir l'hexadécimal en chaîne en PHP est hex2bin(). Sa fonction est de convertir des nombres hexadécimaux en chaînes.

Exemple de code :

$string = hex2bin('546869732069732061207465737420737472696e67');
echo $string;

Résultat d'exécution :

Ceci est une chaîne de test

Dans l'exemple ci-dessus, la fonction hex2bin() convertit la chaîne hexadécimale '546869732069732061207465737420737472696e67' en chaîne 'This est une chaîne de test'. Comme vous pouvez le constater, la chaîne convertie est la même que la chaîne hexadécimale d'origine.

Il convient de noter que si le nombre hexadécimal transmis n'est pas un nombre pair de chiffres (c'est-à-dire non divisible par 2) lors de l'appel de la fonction hex2bin(), PHP ajoutera automatiquement un caractère '0' à la fin de la chaîne. Cela en fera un nombre pair, puis le convertira.

Exemple de code :

$string = hex2bin('546869732069732061207465737420737472696e670');
echo $string;

Résultat de l'exécution :

Ceci est une chaîne de test

Le caractère '0' à la fin de la chaîne hexadécimale '546869732069732061207465737420737472696e670' est automatiquement ajouté par PHP.

En plus de la fonction hex2bin(), il existe les deux fonctions suivantes en PHP qui peuvent convertir des nombres hexadécimaux en chaînes :

  1. Fonction pack() :
    la ​​fonction pack() peut être utilisée pour convertir des nombres hexadécimaux en chaînes Convertir à enchaîner. Contrairement à la fonction hex2bin(), la fonction pack() peut convertir selon différents formats.

Description du format :

H - Chaîne hexadécimale (big endian)
h - Chaîne hexadécimale (low endian)
N - Long non signé (ordre des octets du réseau)
n - Short non signé (ordre des octets du réseau)
V - Long non signé (ordre natif des octets)
v - Unsigned short (ordre natif des octets)

Exemple de code :

$string = pack("H*", '546869732069732061207465737420737472696e67');
echo $string;

Résultats d'exécution :

Ceci est une chaîne de test

Ce code est similaire à l'utilisation de la fonction hex2bin(). La différence est que la fonction pack() peut analyser les chaînes hexadécimales selon différents formats. Fonction

  1. chr() : La fonction
    chr() est utilisée pour convertir la valeur du code ASCII spécifiée en caractères. Un octet pouvant représenter 256 caractères différents, le nombre hexadécimal d'un octet correspond à une valeur de code ASCII. Par conséquent, en divisant la chaîne hexadécimale en deux groupes de caractères et en convertissant chaque groupe en sa valeur de code ASCII correspondante, la chaîne convertie peut être obtenue.

Exemple de code :

$str = "546869732069732061207465737420737472696e67";
$len = strlen($str);
$res = "";
for ($i = 0; $i < $len; $i += 2) {
    $res .= chr(hexdec(substr($str, $i, 2)));
}
echo $res;

Résultat de l'exécution :

Ceci est une chaîne de test

Dans l'exemple ci-dessus, nous divisons d'abord la chaîne hexadécimale $str en deux groupes de caractères, donc $ La longueur de str est un nombre pair. Parcourez chaque groupe via une boucle for, appelez la fonction hexdec() pour le convertir en nombre décimal, puis appelez la fonction chr() pour le convertir en le caractère correspondant et ajoutez le caractère à la chaîne $res.

Pour résumer, PHP propose une variété de méthodes pour convertir des nombres hexadécimaux en chaînes. Les développeurs peuvent choisir la méthode appropriée en fonction des besoins réels.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn