У меня есть пример из PHP.net, чтобы обнаружить арабский язык. Почему это не работает?
$text = 'بيتر هو صبي.'; // arabic //$text = 'פיטר הוא ילד.'; // hebrew mb_regex_encoding('UTF-8'); if(mb_ereg('[\x{0600}-\x{06FF}]', $text)) // arabic range //if(mb_ereg('[\x{0590}-\x{05FF}]', $text)) // hebrew range { echo "Text has some arabic/hebrew characters."; } else { echo "Text doesnt have arabic/hebrew characters."; }
Вы не должны полагаться на диапазоны символов для обнаружения арабских символов. Вы можете напрямую использовать \p{Arabic}
для обнаружения арабских букв:
Следующие работы прекрасны:
$text = 'بيتر هو صبي.'; // arabic //$text = 'פיטר הוא ילד.'; // hebrew if (preg_match('~\p{Arabic}~u', $text)) echo "Text has some arabic/hebrew characters."; else echo "Text doesnt have arabic/hebrew characters.";
ВЫВОД:
Text has some arabic/hebrew characters.