Maison  >  Article  >  développement back-end  >  Comment convertir des données hexadécimales en tableau en php

Comment convertir des données hexadécimales en tableau en php

PHPz
PHPzoriginal
2023-04-26 09:14:16745parcourir

PHP est un puissant langage de script côté serveur largement utilisé dans le développement Web. Dans le processus de développement de PHP, nous devons souvent nous occuper de la conversion et du traitement des données. Cet article explique comment convertir des données hexadécimales en tableau.

Tout d’abord, nous devons comprendre ce qu’est l’hexadécimal. En termes simples, l'hexadécimal est un système numérique qui utilise 16 nombres pour représenter des valeurs, à savoir 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C et D. , E et F. . Parmi eux, A~F représentent respectivement 10~15.

En PHP, nous pouvons utiliser la fonction hex2bin() pour convertir l'hexadécimal en chaîne. Par exemple, le code suivant convertit la chaîne hexadécimale « 48656C6C6F20576F726C64 » en chaîne « Hello World » :

echo hex2bin("48656C6C6F20576F726C64");

Ensuite, nous devons convertir la chaîne en tableau. Nous pouvons utiliser la fonction str_split() pour diviser la chaîne en caractères individuels, puis utiliser la fonction ord() pour convertir les caractères en code ASCII. Par exemple, le code suivant divise la chaîne « Hello World » en un tableau d'entiers :

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

Le résultat est :

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

Si nous avons converti la chaîne hexadécimale en chaîne, nous pouvons combiner les deux extraits de code ci-dessus. Par exemple, le code suivant convertit la chaîne hexadécimale « 48656C6C6F20576F726C64 » en un tableau d'entiers :

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

Le résultat de sortie est :

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

En plus d'utiliser la méthode ci-dessus, nous pouvons également utiliser la fonction unpack(). La fonction unpack() peut décompresser une chaîne en plusieurs valeurs, renvoyant un tableau associatif ou un tableau indexé numériquement. Nous pouvons utiliser le caractère de formatage H*, ce qui signifie convertir une chaîne hexadécimale en nombre hexadécimal et la conditionner dans une chaîne binaire. Par exemple, le code suivant convertit la chaîne hexadécimale "48656C6C6F20576F726C64" en un tableau d'entiers :

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

Le résultat de sortie est :

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

L'utilisation de la fonction unpack() est plus concise et efficace, mais il convient de noter que la fonction unpack( ) fonction L'astérisque (*) dans le nom de la fonction signifie le déballage de tous les éléments, pas de n'importe quel format.

Résumé : cet article explique comment convertir des données hexadécimales en tableau. Nous pouvons utiliser la fonction hex2bin() pour convertir l'hexadécimal en chaîne, puis utiliser la fonction str_split() pour la diviser en caractères individuels, et enfin utiliser la fonction ord() pour convertir les caractères en codes ASCII. En plus de cela, nous pouvons également utiliser la fonction unpack() pour réaliser une conversion plus efficace. Ces méthodes seront très utiles dans le développement réel.

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!

Déclaration:
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