Ответ 1
Используйте функцию ord
например.
<?php
$var = "nÖ§9q1Fª£ˆæÓ§Œ_»—Ló]j";
for($i = 0; $i < strlen($var); $i++)
{
echo ord($var[$i])."<br/>";
}
?>
Скажем, у меня есть строка в php, которая печатает в текстовый файл следующим образом:
nÖ§9q1Fª £
Как я могу получить байтовые коды этого текстового файла, а не фанки символов ascii?
Используйте функцию 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), вам не повезло и нужно взломать его самостоятельно.