Chaîne de tableau d'octets en php
Comment puis-je obtenir le tableau d'octets à partir d'une chaîne de caractères qui peut contenir des chiffres, des lettres et ainsi de suite?
Si vous êtes familier avec Java, je suis à la recherche pour la même fonctionnalité de la méthode getBytes ().
J'ai essayé un extrait de code comme celui-ci:
for($i = 0; $i < strlen($msg); $i++){
$data.=ord($msg[$i]);
//or $data[]=ord($msg[$1]);
}
mais sans succès, de sorte que toute forme d'aide sera appréciée.
PS: Pourquoi ai-je besoin!? Eh bien, j'ai besoin d'envoyer un tableau d'octets via fputs() à un serveur écrit en Java...
Vous devez vous connecter pour publier un commentaire.
@Sparr est bon, mais je suppose que vous vous attendiez d'un tableau d'octets comme
byte[]
en C#. C'est la même solution que Sparr fait, mais au lieu de HEX vous attendint
présentation (plage de 0 à 255) de chaquechar
. Vous pouvez le faire comme suit:En utilisant
var_dump
vous pouvez voir que les éléments sontint
(passtring
).Attention: le tableau de sortie est de 1-en fonction de l'indice (comme il a été souligné dans le commentaire)
T = 0x54, h = 0x68, ...
Vous pouvez diviser le résultat en deux-hex-caractère morceaux si nécessaire.
pack
qui est l'inverse deunpack
, et prend les mêmes sortes de paramètres.Vous pouvez essayer ceci:
En PHP, les chaînes sont bytestreams. Qu'est-ce exactement que vous essayez de faire?
Re: modifier
fputs
prend une chaîne de caractères comme argument. Très probablement, vous avez juste besoin de passer votre fil. Sur le Java côté des choses, vous devez décoder les données quel que soit l'encodage, vous êtes à l'aide de php (la valeur par défaut est iso-8859-1).PHP n'a pas explicite
byte
type, mais sonstring
est déjà l'équivalent de Java du tableau d'octets. Vous pouvez écrire en toute sécuritéfputs($connection, "The quick brown fox …")
. La seule chose que vous devez être conscient, c'est l'encodage des caractères, ils doivent être les mêmes sur les deux côtés. Utilisation mb_convert_encoding() en cas de doute.J'ai trouvé plusieurs fonctions définies dans http://tw1.php.net/unpack sont très utiles.
Ils peuvent secrètes de la chaîne de tableau d'octets, et vice-versa.
Prendre byteStr2byteArray() à titre d'exemple: