Maison >développement back-end >tutoriel php >Comment puis-je convertir une chaîne PHP en un tableau d'octets à l'aide de « unpack() » ?

Comment puis-je convertir une chaîne PHP en un tableau d'octets à l'aide de « unpack() » ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-04 06:02:13721parcourir

How Can I Convert a PHP String into a Byte Array Using `unpack()`?

Conversion d'une chaîne en un tableau d'octets en PHP

En PHP, vous pouvez rencontrer le besoin de convertir une chaîne en un tableau d'octets, en particulier lors de l'interface avec des systèmes attendant formats de données binaires.

GetBytes() Équivalent en PHP

Similaire à Java getBytes(), PHP propose la fonction unpack() pour accomplir cette tâche. Contrairement à getBytes(), qui renvoie un tableau d'octets représentant les points de code Unicode de la chaîne, unpack() vous permet de spécifier un format personnalisé pour extraire des données spécifiques.

Décompresser une chaîne dans un tableau d'entiers

Pour obtenir un tableau d'entiers représentant les valeurs d'octets d'une chaîne, utilisez le format unpack() suivant :

$byte_array = unpack('C*', $string);

La chaîne de format 'C*' indique que nous voulons décompresser une séquence de caractères non signés (dans les plages [0, 255]), représentant les valeurs en octets de la chaîne.

Exemple

Prenons l'exemple chaîne : "Le renard rapide a sauté par-dessus le chien brun paresseux". En utilisant l'approche ci-dessus, nous pouvons obtenir le tableau d'octets correspondant :

$string = "The quick fox jumped over the lazy brown dog";
$byte_array = unpack('C*', $string);

var_dump($byte_array);

Sortie :

array(44) {
  [1] => int(84)
  [2] => int(104)
  [3] => int(101)
  [4] => int(32)
  [5] => int(113)
  [6] => int(117)
  [7] => int(105)
  [8] => int(99)
  [9] => int(107)
  [10] => int(32)
  [11] => int(102)
  [12] => int(111)
  [13] => int(120)
  [14] => int(32)
  [15] => int(106)
  [16] => int(117)
  [17] => int(109)
  [18] => int(112)
  [19] => int(101)
  [20] => int(100)
  [21] => int(32)
  [22] => int(111)
  [23] => int(118)
  [24] => int(101)
  [25] => int(114)
  [26] => int(32)
  [27] => int(116)
  [28] => int(104)
  [29] => int(101)
  [30] => int(32)
  [31] => int(108)
  [32] => int(97)
  [33] => int(122)
  [34] => int(121)
  [35] => int(32)
  [36] => int(98)
  [37] => int(114)
  [38] => int(111)
  [39] => int(119)
  [40] => int(110)
  [41] => int(32)
  [42] => int(100)
  [43] => int(111)
  [44] => int(103)
}

Comme vous pouvez le voir, le tableau de sortie contient les valeurs d'octets de chaque caractère dans le chaîne, indexée à partir de 1.

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