Maison >développement back-end >tutoriel php >Comment puis-je convertir une chaîne PHP en un tableau d'octets ?
Conversion d'une chaîne en tableau d'octets en PHP
En PHP, il existe différentes manières de convertir une chaîne contenant des caractères et des nombres en un tableau d'octets. Semblable à la méthode getBytes() de Java, voici quelques approches pour réaliser cette conversion :
Utilisation de la fonction ord()
Parcourez chaque caractère de la chaîne en utilisant strlen(). Pour chaque caractère, utilisez la fonction ord() pour obtenir sa valeur entière ASCII. Stockez ces valeurs dans un tableau ou un tableau d'octets.
for ($i = 0; $i < strlen($msg); $i++) { $data[] = ord($msg[$i]); // Store in an array // or $byte_array .= ord($msg[$i]); // Concatenate in a byte array }
Utilisation de la fonction unpack()
La fonction unpack() de PHP offre une méthode concise pour convertir une chaîne dans un tableau structuré de valeurs entières. Il vous permet d'extraire et de réinterpréter les caractères de la chaîne sous forme d'octets individuels.
$byte_array = unpack('C*', 'The quick fox jumped over the lazy brown dog'); var_dump($byte_array);
Notez que les valeurs du tableau $byte_array sont des entiers représentant les codes ASCII de chaque caractère, allant de 0 à 255.
Compte tenu de l'extrait de code d'origine fourni, il semble que vous tentiez de convertir les caractères en valeurs hexadécimales plutôt qu'en entiers. valeurs. Pour y parvenir, vous pouvez utiliser la fonction bin2hex() après avoir obtenu le code ASCII du personnage :
for ($i = 0; $i < strlen($msg); $i++) { $data .= bin2hex(chr(ord($msg[$i]))); // Convert to hex and concatenate }
Notes supplémentaires
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!