Как я могу получить байтовые значения строки в PHP?
Скажем, у меня есть строка в php, которая распечатывается в текстовый файл следующим образом:
nÖ§9q1Fª £
Как я могу получить байтовые коды этого в мой текстовый файл, а не прикольные символы ASCII?
4 ответа
Решение
Используйте функцию 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), вам не повезло, и вам нужно взломать его самостоятельно.