Как я могу получить байтовые значения строки в PHP?

Скажем, у меня есть строка в php, которая распечатывается в текстовый файл следующим образом:

nÖ§9q1Fª £

Как я могу получить байтовые коды этого в мой текстовый файл, а не прикольные символы ASCII?

4 ответа

Решение

Используйте функцию ord

http://ca.php.net/ord

например.

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

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

Если вы хотите получить строку в виде массива целочисленных кодов, есть хорошая однострочная строка:

unpack('C*', $string)

Осторожно, результирующий массив индексируется с 1, а не с 0!

Если вы говорите о шестнадцатеричном значении, это должно сделать для вас:

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

Ссылка

Ord() делает трюк с ASCII-кодировкой. Однако если вы вмешиваетесь в многобайтовые строки (например, UTF-8), вам не повезло, и вам нужно взломать его самостоятельно.

Другие вопросы по тегам