I have an example from PHP.net to detect Arabic. Why doesn't it work?
$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.";
}
You shouldn't rely on character ranges for detecting arabic characters. You can directly use \p{Arabic}
for detecting Arabic letters:
Following works fine:
$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.";
OUTPUT:
Text has some arabic/hebrew characters.