2009-09-21 6 views

答えて

13
function strtr_utf8($str, $from, $to) { 
    $keys = array(); 
    $values = array(); 
    preg_match_all('/./u', $from, $keys); 
    preg_match_all('/./u', $to, $values); 
    $mapping = array_combine($keys[0], $values[0]); 
    return strtr($str, $mapping); 
} 
+6

2番目のパラメータはマッピングの配列であることも考慮する必要があります。 – Gumbo

+0

私はそれを必要としませんでしたが、strtrの署名より忠実です。 – joeforker

2
 
    function strtr_utf8($str, $from, $to) 
    { 
     $keys = array(); 
     $values = array(); 
     if(!is_array($from)) 
     { 
      preg_match_all('/./u', $from, $keys); 
      preg_match_all('/./u', $to, $values); 
      $mapping = array_combine($keys[0], $values[0]); 
     }else 
      $mapping=$from; 
     return strtr($str, $mapping); 
    } 

私は少しreplace_pairsのための配列として二番目のパラメータを使用しての機能を裏返すためにjoeforkerの機能を編集しました。

+0

素晴らしいです。受け入れられた答えは、この回答に移されるべきです。 –

-1
$fromto = array(
    'À'=>'A','Á'=>'A','Ã'=>'A','Â'=>'A', 
    'É'=>'E','Ê'=>'E', 
    'Í'=>'I', 
    'Ó'=>'O','Õ'=>'O','Ô'=>'O', 
    'Ú'=>'U','Ü'=>'U', 
    'Ç'=>'C', 
    'á'=>'a','à'=>'a','ã'=>'a','â'=>'a', 
    'é'=>'e', 
    'ê'=>'e', 
    'í'=>'i', 
    'ó'=>'o','õ'=>'o','ô'=>'o', 
    'ç'=>'c' 
    ); 
    $filter = strtr($filter,$fromto); 
関連する問題