str_replace(带阿拉伯字符)


str_replace with Arabic character

我试图用另一个符号替换一些阿拉伯字符一些碳酸根被替换,但其中一个没有被替换首先我试着把单词分开第二次尝试更换这个字符是ًَstrong文本这是代码

   $spelling="";
function str_split_unicode($str, $l = 0) {
if ($l > 0) {
$ret = array();
$len = mb_strlen($str, "UTF-8");
for ($i = 0; $i < $len; $i += $l) {
$ret[] = mb_substr($str, $i, $l, "UTF-8");
}
return $ret;
}
return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
}
if(isset($_POST['txt_word'])){
 $spelling = implode("  ", str_split_unicode($_POST['txt_word']));
}

 $search  = array('ّّ ','ً ','ٍ ','ٌ ','ُ ','َ ','ِ ','ْ ');
$replace = array('0/','/0','/0','/0','/','/','/','0');
$subject= str_replace($search, $replace,  $spelling);
$alphabet=array('أ','ا','ب','ت','ث','ج','ح','خ','د','ذ','ر','ز','س','ش','س','ص','ط','ظ','ع','غ','ف','ق','ل','م','ن','ه','و','ي','لا','ة','إ','ئ','ؤ','ك','ى','ء');
$rep=array('','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','');
$res=str_replace($alphabet,$rep,$subject);

str_replace()应该能够处理Unicode字符。如果不能,则可能无法将其传递给Unicode。

确保从显示的网站到PHP脚本都在处理Unicode字符串。有关更多信息,请参阅本文:"Unicode友好的PHP和MySQL"。

我使用过http://www.php.net/preg_replace在类似的案例中。

$replace = array(
   '/ä/u'=>'a',
   '/p/u'=>'r',
);
$patterns = array_keys($replace);
$replacements = array_values($replace);
echo preg_replace($patterns, $replacements, $string);