在这段代码中,我检测到了阿拉伯文字。但是,如果有任何阿拉伯文字,将如何添加span
代码
<?php
/*
function highlight($text, $words) {
preg_match_all('~\w+~', $words, $m);
if(!$m)
return $text;
$re = '~\\b(' . implode('|', $m[0]) . ')\\b~';
return preg_replace($re, '<b>$0</b>', $text);
}
*/
$arabic = "|ٮ|ٯ|ا|ب|ت|ث|ج|ح|خ|د|ذ|ر|ز|س|ش|ص|ض|ط|ظ|ع|غ|ف|ق|ك|ل|م|ن|ه|و|ي|ء|آ|ٱ|أ|إ|ة|ؤ|ئ|ى|ـ|،|؛|؟|٪|٫|٬|٩|٨|٧|٦|٥|٤|٣|٢|١|٠|ٍ|ِ|ْ|ّ|ٌ|ُ|ً|َ";
$kata = "
Excellence is to worship Allah as if you see Him
أَنْ تَعْبُدَ اللَّهَ كَأَنَّكَ تَرَاهُ فَإِنْ
for you do not see Him but He certainly sees you.
";
if(mb_ereg(".*[$arabic].*", $kata)) {
echo $kata;
}
else
{
echo "Text doesnt have arabic/hebrew characters.";
}
?>
像这样
Excellence is to worship Allah as if you see Him
<span> أَنْ تَعْبُدَ اللَّهَ كَأَنَّكَ تَرَاهُ فَإِنْ </span>
for you do not see Him but He certainly sees you.
最佳答案
这应该为您工作preg_replace("#([$arabic].+?(?=[a-z]))#us", '<span>$1</span>', $kata)
我尝试使用Unicode character properties,但无法正确匹配阿拉伯音变音符号。
代码 :
<?php
$arabic = "|ٮ|ٯ|ا|ب|ت|ث|ج|ح|خ|د|ذ|ر|ز|س|ش|ص|ض|ط|ظ|ع|غ|ف|ق|ك|ل|م|ن|ه|و|ي|ء|آ|ٱ|أ|إ|ة|ؤ|ئ|ى|ـ|،|؛|؟|٪|٫|٬|٩|٨|٧|٦|٥|٤|٣|٢|١|٠|ٍ|ِ|ْ|ّ|ٌ|ُ|ً|َ";
$kata = "
Excellence is to worship Allah as if you see Him
أَنْ تَعْبُدَ اللَّهَ كَأَنَّكَ تَرَاهُ فَإِنْ
فَإِنْ لَمْ تَكُنْ تَرَاهُ فَإِنَّهُ يَرَاكَ
for you do not see Him but He certainly sees you.
Excellence is أَنْ تَعْبُدَ to worship Allah فَإِنْ as if you see Him
";
// Check if Arabic characters in the string
/* if(mb_ereg(".*\p{Arabic}.*", $kata)) { */
if(mb_ereg(".*[$arabic].*", $kata)) {
/* echo preg_replace("#(\p{Arabic}.+?(?=[a-z]))#us", '<span>$1</span>', $kata); */
echo preg_replace("#([$arabic].+?(?=[a-z]))#us", '<span>$1</span>', $kata);
}
else
{
echo "Text doesnt have arabic characters.";
}
?>
输出:
Excellence is to worship Allah as if you see Him
<span>أَنْ تَعْبُدَ اللَّهَ كَأَنَّكَ تَرَاهُ فَإِنْ
فَإِنْ لَمْ تَكُنْ تَرَاهُ فَإِنَّهُ يَرَاكَ
</span>for you do not see Him but He certainly sees you.
Excellence is <span>أَنْ تَعْبُدَ </span>to worship Allah <span>فَإِنْ </span>as if you see Him