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
Libérer: 2024-12-04 06:02:13
original
692 Les gens l'ont consulté

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);
Copier après la connexion

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);
Copier après la connexion

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)
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal