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

So konvertieren Sie Hexadezimaldaten in PHP in ein Array

PHPz
PHPzOriginal
2023-04-26 09:14:16745Durchsuche

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");

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);

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
)

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);

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
)

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);

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
)

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!

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