En PHP, les chaînes sont traitées sous forme de caractères, et chaque caractère occupe un nombre d'octets différent. Lorsque nous devons convertir une chaîne en tableau d'octets, elle est généralement utilisée dans la communication réseau, la transmission de données, le stockage de données et d'autres scénarios, car ces scénarios nécessitent que les données soient traitées sous forme de tableaux d'octets.
La conversion entre chaînes et tableaux d'octets en PHP nécessite l'aide de certaines fonctions. Ci-dessous, nous présenterons ces fonctions et leur utilisation en détail.
La première est la fonction strlen, qui est utilisée pour obtenir la longueur d'une chaîne, qui est le nombre de caractères dans la chaîne, par exemple :
$str = "hello"; $len = strlen($str); echo $len; // 输出 5
Dans l'exemple ci-dessus, $str est une chaîne, elle se compose de 5 caractères, sa longueur est obtenue via la fonction strlen et le résultat est affecté à la variable $len, et enfin la valeur de $len est affichée.
En PHP, par défaut, chaque caractère occupe un octet, mais pour les jeux de caractères complexes tels que le chinois, un caractère peut nécessiter plusieurs octets pour être représenté, auquel cas vous devez utiliser la fonction mb_strlen pour obtenir le nombre réel de caractères dans la chaîne, par exemple :
$str = "你好,世界!"; $len = mb_strlen($str, "utf-8"); echo $len; // 输出 7
Dans l'exemple ci-dessus, $str est une chaîne contenant des caractères chinois. Si vous utilisez la fonction strlen pour obtenir sa longueur, vous ne pouvez obtenir que 11. Si vous utilisez mb_strlen. La fonction doit spécifier le jeu de caractères comme utf-8 afin d'obtenir correctement le nombre réel de caractères dans la chaîne.
Vient ensuite la fonction str_split, qui est utilisée pour diviser une chaîne en un tableau de caractères uniques, par exemple :
$str = "hello"; $arr = str_split($str); print_r($arr); // 输出 Array ( [0] => h [1] => e [2] => l [3] => l [4] => o )
Dans l'exemple ci-dessus, $str est une chaîne qui est divisée par le Fonction str_split Il est divisé en un tableau contenant un seul caractère, et le résultat est affecté à la variable $arr, et enfin le contenu de $arr est affiché à l'aide de la fonction print_r.
La fonction unpack est une fonction qui convertit une chaîne binaire en tableau. Sa syntaxe est la suivante :
array unpack ( string $format , string $data )
Le paramètre $format est utilisé pour spécifier le format des données, et le $data. Le paramètre est la chaîne binaire à convertir. Le paramètre $format est une chaîne composée d'un ou plusieurs codes de format. Chaque code de format est utilisé pour décrire un type de données et son nombre d'octets correspondant. Les codes de format couramment utilisés et leurs types de données correspondants sont les suivants :
Par exemple, si nous devons convertir une chaîne binaire contenant données entières dans un tableau, nous pouvons utiliser le code suivant :
$data = "\x00\x12\x34\x56"; // 十六进制字符串 $arr = unpack("N", $data); print_r($arr); // 输出 Array ( [1] => 305419896 )
Dans l'exemple ci-dessus, $data est une chaîne binaire contenant une seule donnée entière, via La fonction unpack la convertit en un tableau contenant un élément, attribue le résultat à la variable $arr, et utilise enfin la fonction print_r pour imprimer le contenu de $arr.
Contrairement à la fonction unpack, la fonction pack est utilisée pour regrouper des tableaux en chaînes binaires. Sa syntaxe est la suivante :
string pack ( string $format , mixed $args1 [, mixed $args2 [, mixed $... ]] )
où $format a le même code de format que la fonction unpack et est utilisé. pour spécifier le format de données empaqueté, $args1, $args2 et d'autres paramètres sont les données à empaqueter, qui peuvent être un ou plusieurs.
Par exemple, si nous devons regrouper un tableau dans une chaîne binaire, nous pouvons utiliser le code suivant :
$arr = array(305419896); $data = pack("N", ...$arr); echo bin2hex($data); // 输出 00123456
Dans l'exemple ci-dessus, $arr est un tableau contenant une donnée entière, qui est emballée dans une chaîne binaire, et attribuez le résultat à la variable $data. Enfin, utilisez la fonction bin2hex pour convertir $data en chaîne hexadécimale et affichez-la.
Pour résumer, il existe de nombreuses façons de convertir des chaînes en tableaux d'octets en PHP, et vous pouvez choisir la méthode appropriée en fonction du scénario d'application spécifique. Quelle que soit la méthode utilisée, vous devez prêter attention à des problèmes tels que le codage des caractères et le format des données pour obtenir des résultats corrects.
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!