Как мне сделать strtr на UTF-8 в PHP? - PullRequest
7 голосов
/ 21 сентября 2009

Я ищу UTF-8-совместимую строку для PHP.

Ответы [ 3 ]

14 голосов
/ 21 сентября 2009
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);
}
2 голосов
/ 22 декабря 2013
    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);
    }

Я немного отредактировал функцию joeforker, чтобы вернуть функциональность использования второго параметра в качестве массива для replace_pairs.

0 голосов
/ 16 сентября 2016
    $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);
...