Heim > Backend-Entwicklung > PHP-Problem > So konvertieren Sie Hexadezimaldaten in PHP in ein Array

So konvertieren Sie Hexadezimaldaten in PHP in ein Array

PHPz
Freigeben: 2023-04-26 10:09:24
Original
792 Leute haben es durchsucht

PHP ist eine leistungsstarke serverseitige Skriptsprache, die in der Webentwicklung weit verbreitet ist. Im Entwicklungsprozess von PHP müssen wir uns häufig mit der Datenkonvertierung und -verarbeitung befassen. In diesem Artikel wird erläutert, wie hexadezimale Daten in ein Array konvertiert werden.

Zunächst müssen wir verstehen, was Hexadezimal ist. Einfach ausgedrückt ist Hexadezimal ein Zahlensystem, das 16 Zahlen zur Darstellung von Werten verwendet, nämlich 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C und D, E und F . Unter ihnen repräsentieren A~F jeweils 10~15.

In PHP können wir die Funktion hex2bin() verwenden, um Hexadezimalzahlen in Zeichenfolgen umzuwandeln. Der folgende Code wandelt beispielsweise die hexadezimale Zeichenfolge „48656C6C6F20576F726C64“ in die Zeichenfolge „Hello World“ um:

echo hex2bin("48656C6C6F20576F726C64");
Nach dem Login kopieren

Als nächstes müssen wir die Zeichenfolge in ein Array konvertieren. Wir können die Funktion str_split() verwenden, um die Zeichenfolge in einzelne Zeichen aufzuteilen, und dann die Funktion ord() verwenden, um die Zeichen in ASCII-Code umzuwandeln. Der folgende Code teilt beispielsweise die Zeichenfolge „Hello World“ in ein Array von Ganzzahlen auf:

$str = "Hello World";
$chars = str_split($str);
$nums = array();
foreach ($chars as $char) {
    $nums[] = ord($char);
}
print_r($nums);
Nach dem Login kopieren

Die Ausgabe lautet:

Array
(
    [0] => 72
    [1] => 101
    [2] => 108
    [3] => 108
    [4] => 111
    [5] => 32
    [6] => 87
    [7] => 111
    [8] => 114
    [9] => 108
    [10] => 100
)
Nach dem Login kopieren
Nach dem Login kopieren

Wenn wir die Hex-Zeichenfolge in eine Zeichenfolge umgewandelt haben, können wir die beiden oben genannten Codeschnipsel kombinieren. Der folgende Code wandelt beispielsweise die hexadezimale Zeichenfolge „48656C6C6F20576F726C64“ in ein ganzzahliges Array um:

$hex_str = "48656C6C6F20576F726C64";
$str = hex2bin($hex_str);
$chars = str_split($str);
$nums = array();
foreach ($chars as $char) {
    $nums[] = ord($char);
}
print_r($nums);
Nach dem Login kopieren

Das Ausgabeergebnis lautet:

Array
(
    [0] => 72
    [1] => 101
    [2] => 108
    [3] => 108
    [4] => 111
    [5] => 32
    [6] => 87
    [7] => 111
    [8] => 114
    [9] => 108
    [10] => 100
)
Nach dem Login kopieren
Nach dem Login kopieren

Zusätzlich zur Verwendung der oben genannten Methode können wir auch die Funktion unpack() verwenden. Die Funktion unpack() kann einen String in mehrere Werte entpacken und ein assoziatives Array oder ein numerisch indiziertes Array zurückgeben. Wir können das H*-Formatierungszeichen verwenden, was bedeutet, dass eine Hexadezimalzeichenfolge in eine Hexadezimalzahl umgewandelt und in eine Binärzeichenfolge verpackt wird. Der folgende Code konvertiert beispielsweise die hexadezimale Zeichenfolge „48656C6C6F20576F726C64“ in ein ganzzahliges Array:

$hex_str = "48656C6C6F20576F726C64";
$bin_str = pack("H*", $hex_str);
$nums = unpack("C*", $bin_str);
print_r($nums);
Nach dem Login kopieren

Das Ausgabeergebnis lautet:

Array
(
    [1] => 72
    [2] => 101
    [3] => 108
    [4] => 108
    [5] => 111
    [6] => 32
    [7] => 87
    [8] => 111
    [9] => 114
    [10] => 108
    [11] => 100
)
Nach dem Login kopieren

Die Verwendung der Funktion unpack() ist prägnanter und effizienter, es sollte jedoch beachtet werden, dass die Funktion unpack( )-Funktion Das Sternchen (*) im Funktionsnamen bedeutet, dass alle Elemente entpackt werden, nicht irgendein Format.

Zusammenfassung: In diesem Artikel wird erläutert, wie hexadezimale Daten in ein Array konvertiert werden. Wir können die Funktion hex2bin() verwenden, um Hexadezimalzahlen in einen String umzuwandeln, dann die Funktion str_split() verwenden, um sie in einzelne Zeichen aufzuteilen, und schließlich die Funktion ord() verwenden, um die Zeichen in ASCII-Codes umzuwandeln. Darüber hinaus können wir auch die Funktion unpack() verwenden, um die Konvertierung effizienter zu gestalten. Diese Methoden werden in der tatsächlichen Entwicklung sehr nützlich sein.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Hexadezimaldaten in PHP in ein Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage