Heim > Artikel > Backend-Entwicklung > So konvertieren Sie Hexadezimal- in ASCII-Code in PHP
So konvertieren Sie Hexadezimal- in ASCII-Code in PHP: 1. Konvertieren Sie Hexadezimalzahlen in ASCII-Zeichen mit der Funktion bex2bin. 2. Konvertieren Sie Hexadezimalzahlen in ASCII-Zeichen mit der Pack-Funktion.
Die Betriebsumgebung dieses Artikels: Windows7-System, PHP7.1-Version, DELL G3-Computer
Wie konvertiert PHP Hexadezimalcode in ASCII-Code?
Hexadezimale Zahlen in ASCII-Zeichen umwandeln
Um Hexadezimalzahlen in PHP umzuwandeln, verwenden Sie die Funktion hex2bin. Derzeit gibt es in PHP5 keine Funktion zum Konvertieren von Hexadezimalzahlen Zahlen in ASCII-Zeichen
bex2bin-Funktionssyntax lautet wie folgt:
hex2bin(string)
Die Parameterzeichenfolge ist die Hexadezimalzahl, die konvertiert werden muss
pack-Funktionssyntax lautet wie folgt:
pack(format,args+)
Parameterbeschreibung:
Format: erforderlich, To Geben Sie das beim Packen von Daten verwendete Format an. Die optionalen Parameterwerte lauten wie folgt:
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+: optional, Angabe eines oder mehrerer zu packender Parameter
bex2bin-Funktion konvertiert: Hexadezimalzahl in ASCII Das Zeichenbeispiel lautet wie folgt
$str = '49206c6f7665e4b8ade59bbd'; $str = hex2bin($str); echo $str;
Das Ausgabeergebnis lautet wie folgt:
I love中国
Aber beim Ausführen der hex2bin-Funktion wird möglicherweise der folgende Fehler gemeldet:
hex2bin(): Hexadecimal input string must have an even length
Der obige Fehler kann zwei Gründe haben:
1: Es ist in unserer Hexadezimalzahl möglich Es gibt Zeichen, die nicht hexadezimal sind
2: Die Zeichenlänge von Hexadezimalzahlen ist eine ungerade Zahl
Wir können also so schreiben:
$str = '49206c6f7665e4b8ade59bbd'; $str = @hex2bin($str); if ($str) { echo $str; } else { echo 0; }
Das Beispiel der Pack-Funktion zum Konvertieren von Hexadezimalzahlen in ASCII-Zeichen lautet wie folgt:
$str = '49206c6f7665e4b8ade59bbd'; $str = pack("H*", $str); echo $str;
Das Obige besteht darin, zuerst Hexadezimalzahlen in ASCII-Zeichen umzuwandeln
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Hexadezimal- in ASCII-Code in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!