如何仅在阿拉伯语句子上添加跨度?



在此代码中,我检测到阿拉伯语写作。但是,如果有任何阿拉伯语写作,将如何添加到代码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.
  • 了解阿拉伯字母的编码方式。例如。这里 如您所见,它从 U+0600 开始
  • 解析$kata,直到遇到这样的字符
  • 插入<span>
  • 继续解析,直到第一个非阿拉伯语字符
  • 插入</span>
  • 继续这样做,直到字符串结束。

这应该适合你preg_replace("#([$arabic].+?(?=[a-z]))#us", '<span>$1</span>', $kata)

我尝试使用 Unicode 字符属性,但无法正确匹配阿拉伯语变音符号。

守则 :

<?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

最新更新