Maison > développement back-end > Problème PHP > Comment convertir du code hexadécimal en code ascii en php

Comment convertir du code hexadécimal en code ascii en php

藏色散人
Libérer: 2023-03-11 18:28:02
original
3712 Les gens l'ont consulté

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.

Comment convertir du code hexadécimal en code ascii en php

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)
Copier après la connexion

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+)
Copier après la connexion

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 填充绝对位置
Copier après la connexion

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;
Copier après la connexion

Le résultat de sortie est le suivant :

I love中国
Copier après la connexion

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
Copier après la connexion

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;
}
Copier après la connexion

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;
Copier après la connexion

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!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal