Как проверить массив для записи, содержащей символы HTML? - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть массив, представляющий греческий алфавит, представленный в виде строк символов HTML:

$alphabet = ["α", "β", "γ", "δ", ...]

Подобные строковые переменные хранятся и извлекаются из базы данных MySQL (я использую mysqli).Когда я извлекаю переменную $db_result, значение которой, скажем, "α", из БД и проверяю, находится ли она в массиве $alphabet с помощью функции in_array(), она никогда не обнаруживается:

if( in_array($db_result, $alphabet) ){
    print_r("That's Greek to me!");
}
/* Result: Nothing ever prints */

Если я print_r() и $db_result, и $alphabet, они оба печатают одинаковые символы.Таким образом, $db_result печатается как 'α', а $alphabet печатается как Array ( [0] => α [1] => β [2] => γ ...).

В источнике страницы значения $db_resul t отображаются как фактические греческие буквы, тогда как $alphabetзаписи массива HTML α.Мне важнее не отображение, а логика: мне нужно in_array(), чтобы распознать альфа как альфа

Что-то должно отличаться в кодировке, как только значение "α" будет получено из БД, но яне знаю что или как это исправить.

1 Ответ

0 голосов
/ 14 декабря 2018

Результатом базы данных является фактический символ, поэтому преобразуйте его в сущность HTML, чтобы проверить:

if( in_array(htmlentities($db_result), $alphabet) ){
    print_r("That's Greek to me!");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...