带有阿拉伯字符的str_replace

时间:2014-11-07 12:51:10

标签: php

我尝试用另一个符号替换一些阿拉伯语caractere 一些arbic caractere被替换,但其中一个caractere它没有被替换 首先我试着分开这个词 第二次尝试更换caractere 所有这些都被取代了,但问题在于这个问题 强文 这是代码

   $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);

2 个答案:

答案 0 :(得分:0)

str_replace()应该能够处理Unicode字符如果没有,你可能不会传递Unicode。

确保从显示的网站到PHP脚本一直处理Unicode字符串。有关详细信息,请参阅此文章:„Unicode-friendly PHP and MySQL“

答案 1 :(得分:0)

我在类似案例中使用了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);