0
4

2 に答える 2

2

pregエンジンは UTF-8 でネイティブに動作するため、エンジンを使用することをお勧めします。mb_* はもちろん悪い選択ではありませんが、もっと複雑だと思います。

あなたのケースのサンプルを作成しました:

$sData     = "رضي الدين";
$rgReplace = [
  'ﺏ' => 'b', 
  'ﺕ' => 't', 
  'ن' => 'n', 
  'ي' => 'i', 
  'د' => 'f', 
  'ل' => 'l', 
  'ا' => 'a',
  'ر' => 'r', 
  'ي' => 'i',
  'ض' => 'g',
  ' ' => ' '
];
$sResult   = preg_replace_callback('/./u', function($sChar) use ($rgReplace)
{
   return $rgReplace[$sChar[0]];
}, $sData);
echo $sResult; //rgi alfin

あなたのコードについては、エンコーディングを直接渡してみてください(mb_*関数の2番目のパラメータ)

于 2013-08-23T06:32:30.980 に答える