2009-02-26 7 views

Répondre

22

utiliser la fonction ord

http://ca.php.net/ord

par exemple.

<?php 
$var = "nÖ§9q1Fª£ˆæÓ§Œ_»—Ló]j"; 

for($i = 0; $i < strlen($var); $i++) 
{ 
    echo ord($var[$i])."<br/>"; 
} 
?> 
+1

@YzmirRamirez: pour afficher les octets, vous avez besoin d'une longueur en octets, pas de longueur de caractère, donc l'utilisation de 'mb_strlen' est en fait un bug. – Ped7g

+0

Vous avez raison @ Ped7g. J'utilise généralement les fonctions mb_ et j'ai vu l'appel strlen ci-dessus. Mais la meilleure réponse est ci-dessous qui ne nécessite pas de boucles. –

3

Ord() fait l'affaire avec un jeu de caractères ASCII. Cependant, si vous vous mêlez de chaînes multi-octets (comme UTF-8), vous n'avez pas de chance et vous devez le pirater vous-même.

4

Si vous parlez de la valeur hexadécimale, cela devrait faire pour vous:

$value = unpack('H*', "Stack"); 
echo $value[1]; 

Reference

+0

Ceci est une excellente réponse; beaucoup mieux que de jouer avec des boucles «for» et des personnages individuels. – miken32

19

Si vous souhaitez obtenir la chaîne comme un tableau de codes entiers, il y a une belle de un doublure:

unpack('C*', $string) 

Attention, le tableau résultant est indexé de 1, pas de 0!

+0

+1 - _exactement_ ce dont j'avais besoin – Hobo