str_replace不使用阿拉伯字符串

时间:2014-06-06 12:10:25

标签: php preg-replace str-replace arabic

我有以下字符串,其中使用某些特殊模式,在显示时需要替换它们

// String 
if($lang==2){ // based on this condition $usrmsg string will switch b/w english or arabic

$usrmsg = "This is #1|.This is #2|";

}else{

 $usrmsg = "#هذا هو |3#. هذا هو |4 ";

} 

替换代码

我已使用以下内容替换字符串中的模式。

$rep_keys = array(0 => "#1|" ,1 => "#2|",2 => "#3|",3 => "#4|");

$rep_vals = array(0 => "demo1" ,1 => "demo2",2 => "تجريبي 2"<=3  ,"جريبي 1");

for($k=0;$k<count($rep_vals);$k++){
  if(strpos($usrmsg , $rep_keys[$k])!=""){
       $usrmsg = str_replace($rep_keys[$k],$rep_vals[$k],$usrmsg );
   }
}   

这适用于英文字符串,但它不适用于阿拉伯语。 任何人都可以帮助!!!!

1 个答案:

答案 0 :(得分:0)

快速(简单)的方法是使用strtr()

$trans = array("#1|" => "demo1",
               "#2|" => "demo2",
               "#3|" => "جريبي 1",
               "#4|" => "تجريبي 2");

$str = "abc #1| 123 #2| def #3| 456 #4|";

echo strtr($str, $trans);

关于阿拉伯字符:

某些代码编辑器难以管理RTL字符,尤其是代表它们。您的代码编辑器可能会显示完全错误的内容。为了确保您的代码符合您的意思,我建议使用非常基本的代码编辑器,如nano。