Как преобразовать строку в значение ASCII в PHP без ord()?
Я хочу преобразовать строку "Hello" world в значение ASCII в php. Но я не хочу использовать ord()
, Существуют ли другие решения для печати значения ascii без использования ord()
?
3 ответа
unpack()
Распаковывает из двоичной строки в массив в соответствии с заданным форматом.
Используйте формат C*
вернуть все как то, что вы получите от ord()
,
print_r(unpack("C*", "Hello world"));
Array
(
[1] => 72
[2] => 101
[3] => 108
[4] => 108
[5] => 111
[6] => 32
[7] => 119
[8] => 111
[9] => 114
[10] => 108
[11] => 100
)
Вы можете попробовать iconv
родная функция:
string iconv ( string $in_charset , string $out_charset , string $str )
Так было бы:
<?php
$string = "This is the Euro symbol '€'.";
echo iconv("UTF-8", "ASCII", $text), PHP_EOL;
?>
Вы можете перебрать каждый символ в строке, найти его смещение в словарной строке, используя, скажем, strpos, а затем добавить базовое число, например, 65, если ваш словарь начинается с "ABC...
Вам нужно будет обрабатывать необнаруженные символы, поэтому, возможно, лучше использовать словарь "#ABC..., а затем добавить основание из 64, очевидно, вам нужно будет проверить"#"как специальный символ.
Вы можете даже протестировать несколько строк с произвольным набором символов для ограниченных наборов символов "# A..Z", "# a..z", "# 0..9"
Вы понимаете, но не зная, почему вы хотите ограничить себя, я не могу сказать, полезно ли это вам.