Comment convertir du code hexadécimal en code ascii en php : 1. Convertissez le nombre hexadécimal en caractère ASCII via la fonction bex2bin ; 2. Convertissez le nombre hexadécimal en caractère ASCII via la fonction pack.
L'environnement d'exploitation de cet article : système Windows7, version PHP7.1, ordinateur DELL G3
Comment php convertit-il l'hexadécimal en code ascii ?
Convertir les nombres hexadécimaux en caractères ASCII
Pour convertir les nombres hexadécimaux en caractères ASCII en php, utilisez la fonction hex2bin Il n'y a pas de fonction bex2bin dans php5. Pour le moment, nous pouvons utiliser la fonction pack pour convertir les nombres hexadécimaux. nombres en caractères ASCII
La syntaxe de la fonction bex2bin est la suivante :
hex2bin(string)
La chaîne de paramètres est le nombre hexadécimal qui doit être converti
La syntaxe de la fonction pack est la suivante :
pack(format,args+)
Description du paramètre :
format : obligatoire, Pour spécifiez le format utilisé lors de l'empaquetage des données, les valeurs facultatives des paramètres sont les suivantes :
a - NUL 填充的字符串 A - SPACE 填充的字符串 h - 十六进制字符串,低位在前 H - 十六进制字符串,高位在前 c - signed char C - unsigned char s - signed short(总是16位, machine 字节顺序) S - unsigned short(总是16位, machine 字节顺序) n - unsigned short(总是16位, big endian 字节顺序) v - unsigned short(总是16位, little endian 字节顺序) i - signed integer(取决于machine的大小和字节顺序) I - unsigned integer(取决于machine的大小和字节顺序) l - signed long(总是32位, machine 字节顺序) L - unsigned long(总是32位, machine 字节顺序) N - unsigned long(总是32位, big endian 字节顺序) V - unsigned long(总是32位, little endian 字节顺序) f - float(取决于 machine 的大小和表示) d - double(取决于 machine 的大小和表示) x - NUL 字节 X - 备份一个字节 Z - NUL 填充的字符串 @ - NUL 填充绝对位置
args+ : facultatif, spécifie un ou plusieurs paramètres à emballer
La fonction bex2bin convertit : un nombre hexadécimal en ASCII L'exemple de caractère est le suivant suit
$str = '49206c6f7665e4b8ade59bbd'; $str = hex2bin($str); echo $str;
Le résultat de sortie est le suivant :
I love中国
Mais lors de l'exécution de la fonction hex2bin, l'erreur suivante peut être signalée :
hex2bin(): Hexadecimal input string must have an even length
Il peut y avoir deux raisons à l'erreur ci-dessus :
1 : Il est possible dans notre nombre hexadécimal Il y a des caractères qui ne sont pas hexadécimaux
2 : La longueur des caractères des nombres hexadécimaux est un nombre impair
On peut donc écrire comme ceci :
$str = '49206c6f7665e4b8ade59bbd'; $str = @hex2bin($str); if ($str) { echo $str; } else { echo 0; }
L'exemple de la fonction pack pour convertir les nombres hexadécimaux en caractères ASCII est le suivant suit :
$str = '49206c6f7665e4b8ade59bbd'; $str = pack("H*", $str); echo $str;
Ce qui précède consiste à convertir d'abord les nombres hexadécimaux en caractères ASCII
Apprentissage recommandé : "Tutoriel vidéo PHP"
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!