preg_replace utf-8 Arapça metin için çalışmıyor

0 Cevap php

Ben (zihin bütün kelime değil alt dizeleri tutmak) kötü bütün kelimelerin varlığını kontrol etmek için bir php işlevi yazma ve aynı zamanda verilen dize tüm kelimeleri vurgulayın.

function badwordChecherAndHighLighter($str,$replace){
// $replace=1  will  Highlight
// $replace=0  will  Check the existence of any badwords

$result = mysql_query("SELECT settings_badwords_en,settings_badwords_ar FROM settings_badwords WHERE settings_badwords_status=1") or die(mysql_error());

// i dont create an array, may create overhead, so i directly apply in preg_replace

if($replace==1){
while($row = mysql_fetch_row($result))
{
//$str=preg_replace('/'.$row[0].'/i', str_repeat("*",strlen($row[0])), $str);
$str=preg_replace('/\b('.$row[0].'\b)/i',"" .$row[0] . "" , $str);
$str=preg_replace('/\b('.$row[1].'\b)/i',"" .$row[1] . "" , $str);
}
return $str;
}else{

while($row = mysql_fetch_row($result))
{
 if(preg_match('/\b('.$row[0].'\b)/i',$str)) return 1;
 if(preg_match('/\b('.$row[1].'\b)/i',$str)) return 1;
}
return 0; 
}
}

// $row[1] conatin Arabic bad Words, and $row[0] contain English bad words.

Bu fonksiyon, Arapça ve İngilizce hem de Windows işletim sistemi, wamp5 1.7.3 hakkında doğru sonuçlar verir.

Ama Web Server üzerinde sadece değil Arapça için, İngilizce kelimeler için çalışıyor.

Arapça metin bu işlev verilir Yani, o da Arapça kelime vurgulamak mümkün herhangi KötüKelime varlığını kontrol edemiyor, ve.

Ben araştırdım ve \ u ama hiçbir hata, hiçbir başarı gibi birçok seçenekleri deneyin.

Yani yardım lütfen.

0 Cevap