Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie Hexadezimal- in ASCII-Code in PHP

So konvertieren Sie Hexadezimal- in ASCII-Code in PHP

藏色散人
藏色散人Original
2021-07-22 10:20:373649Durchsuche

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.

So konvertieren Sie Hexadezimal- in ASCII-Code in PHP

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn