我有以下字符串,其中使用某些特殊模式,在显示时需要替换它们
// 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 );
}
}
这适用于英文字符串,但它不适用于阿拉伯语。 任何人都可以帮助!!!!
答案 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。