Maison > Article > développement back-end > php convertit la chaîne en tableau d'octets
En programmation PHP, nous devons parfois convertir une chaîne en tableau d'octets pour faciliter le traitement des données binaires. Dans cet article, nous expliquerons comment convertir une chaîne en tableau d'octets à l'aide de PHP.
La fonction str_split() de PHP peut diviser la chaîne en un tableau, où chaque élément est un seul caractère (code ASCII). Lorsque vous utilisez cette fonction, vous devez faire attention aux problèmes de codage des caractères. Par exemple, si la chaîne est codée en UTF-8, chaque caractère chinois nécessite généralement 3 octets ou plus d'espace de stockage.
Ce qui suit est un exemple de code :
// 定义一个字符串 $str = 'hello world'; // 将字符串转换为字节数组 $bytes = array_map('ord', str_split($str));
Dans le code ci-dessus, nous définissons d'abord une chaîne ("hello world"), puis utilisons la fonction str_split() pour divisez-le en tableaux. Ensuite, nous utilisons la fonction ord() intégrée de PHP pour convertir chaque caractère en code ASCII et stockons le tableau converti dans la variable $bytes.
La fonction unpack() de PHP peut décompresser les données binaires dans un tableau ou un tableau associatif dans un format spécifié. Cette fonction est relativement puissante et peut prendre en charge le décompression dans plusieurs formats, tels que des structures en langage C, etc.
Voici un exemple de code :
// 定义一个字符串 $str = 'hello world'; // 将字符串转换为字节数组 $bytes = unpack('C*', $str);
Dans le code ci-dessus, nous définissons d'abord une chaîne ("hello world") puis utilisons la fonction unpack() pour la décompresser Enveloppé dans le type de caractère du langage C (« C »). Enfin, le tableau d'octets converti est stocké dans la variable $bytes.
Si la chaîne est un encodage multi-octets (tel que UTF-8), la méthode ci-dessus peut produire un résultat erroné car les caractères multi-octets doivent être divisés en fonction de leur format de codage.
Pour résoudre ce problème, vous pouvez utiliser la fonction mb_str_split() pour traiter les chaînes multi-octets. Cette fonction est similaire à la fonction str_split(), mais prend en charge les caractères multi-octets.
Voici un exemple de code :
// 定义一个多字节字符串 $str = '今天天气真好'; // 将字符串转换为字节数组 $bytes = array_map('ord', mb_str_split($str));
Dans le code ci-dessus, nous définissons d'abord une chaîne multi-octets ("Il fait vraiment beau aujourd'hui"), puis utilisons mb_str_split() pour le diviser en plusieurs caractères, et enfin utilisez la fonction ord() pour convertir chaque caractère en code ASCII, et stockez le tableau converti dans la variable $bytes.
Résumé
En programmation PHP, lorsque vous devez convertir une chaîne en tableau d'octets, vous pouvez utiliser des méthodes telles que str_split(), unpack() ou mb_str_split() fonctions. Parmi eux, choisir la méthode appropriée nécessite de prendre en compte de nombreux facteurs tels que le format de codage de la chaîne et le format des données binaires. Dans le développement réel, il est nécessaire de choisir une méthode appropriée en fonction de besoins spécifiques.
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!