Как преобразовать строку в значение 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;

?>

Взято с: http://php.net/manual/en/function.iconv.php

Вы можете перебрать каждый символ в строке, найти его смещение в словарной строке, используя, скажем, strpos, а затем добавить базовое число, например, 65, если ваш словарь начинается с "ABC...

Вам нужно будет обрабатывать необнаруженные символы, поэтому, возможно, лучше использовать словарь "#ABC..., а затем добавить основание из 64, очевидно, вам нужно будет проверить"#"как специальный символ.

Вы можете даже протестировать несколько строк с произвольным набором символов для ограниченных наборов символов "# A..Z", "# a..z", "# 0..9"

Вы понимаете, но не зная, почему вы хотите ограничить себя, я не могу сказать, полезно ли это вам.

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