Почему mb_ereg () не обнаруживает арабские символы?

У меня есть пример из 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.