2009-02-26 14 views

Respuesta

22

utilizar la función ord

http://ca.php.net/ord

por ejemplo.

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

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

@YzmirRamirez: para mostrar los bytes se necesita longitud de bytes, no longitud de caracteres, por lo que usar 'mb_strlen' es en realidad error. – Ped7g

+0

Estás en @ Ped7g correcto. Generalmente uso las funciones mb_ y vi la llamada strlen arriba. Pero la mejor respuesta es la siguiente que no requiere bucles. –

3

Ord() hace el truco con un juego de caracteres ASCII. Sin embargo, si usted se entromete en cadenas multibyte (como UTF-8), no tiene suerte, y necesita hacerlo usted mismo.

4

Si usted está hablando sobre el valor hexadecimal, esto debería hacer por usted:

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

Reference

+0

Esta es una gran respuesta; mucho mejor que jugar con 'for' loops y personajes individuales. – miken32

19

Si Usted desea obtener la cadena como una matriz de códigos enteros, hay un buen uno liner:

unpack('C*', $string) 

¡Cuidado, la matriz resultante está indexada de 1, no de 0!

+0

+1 - _exactly_ lo que necesitaba – Hobo

Cuestiones relacionadas