¿Cómo consigo los valores de bytes de una cadena en PHP?
Pregunta
Digamos que tiene una cadena en PHP, que imprime a un archivo de texto como este:
nÖ§9q1Fª £
¿Cómo consigo los códigos de bytes de esto a mi archivo de texto en lugar de los caracteres ASCII cobardes?
Solución
Utilice la función ord
por ejemplo.
<?php
$var = "nÖ§9q1Fª£ˆæÓ§Œ_»—Ló]j";
for($i = 0; $i < strlen($var); $i++)
{
echo ord($var[$i])."<br/>";
}
?>
Otros consejos
Si desea obtener la cadena como una matriz de códigos enteros, hay un bonito de una sola línea:
unpack('C*', $string)
guárdese, la matriz resultante es indexado de 1, no desde 0!
Si usted está hablando sobre el valor hexadecimal, esto debería hacer por usted:
$value = unpack('H*', "Stack");
echo $value[1];
Ord()
hace el truco con un juego de caracteres ASCII. Si, sin embargo, meterse con cadenas multibyte (como UTF-8), que está de suerte, y la necesidad de entrar ilegalmente en él mismo.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow