2009-12-11 19 views

risposta

14

Questa risposta è errata. Non ho capito la normalizzazione Unicode quando l'ho scritta. Guarda il commento e il collegamento di francadaval

Controlla la classe Normalizer per farlo. La documentazione è buono, quindi mi limiterò a collegarlo invece di cose che si ripetono qui:

http://www.php.net/manual/en/class.normalizer.php

In particolare, il membro normalizzazione di quella classe:

http://www.php.net/manual/en/normalizer.normalize.php

Si noti che la normalizzazione Unicode ha diverse forme e sembra che tu voglia la decomposizione della compatibilità con Normalization Form KD (NFKD), anche se dovresti leggere la documentazione per essere sicuro.

Non dovresti provare a svolgere la tua funzione per questo: ci sono troppe cose che possono andare storte, e usare la funzione fornita è un'idea molto migliore.

+0

Questo sarebbe in realtà la (strada e più efficiente) più pulita per andare in quanto non richiederebbe la gestione di tutte le funzioni da soli (per non parlare di trasportare oggetti non necessari in tutto) –

+0

concordato, contento che PHP finalmente introdotto questa funzione. –

+6

Sei sicuro che funzioni? 'normalizer_normalize ('olá', Normalizer :: FORM_KD); // olaÌ' Ho provato anche tutti gli altri moduli disponibili e nessuno sembra restituire solo 'ola'. –

0

Le persone spesso usano str_replace o strtr e una grande lista di carattere da convertire "da" e "a" - anche se questo non sembra molto carina ...

Un'altra soluzione, suppongo, potrebbe essere usando qualcosa come iconv con l'opzione //TRANSLIT - ma non sempre funziona, da quello che mi ricordo ...

Inoltre, se si utilizza PHP 5.3, la nuova classe Normalizer potrebbe essere interessante ;-)

+0

Pascal, per favore controlla il mio commento sulla risposta di WaffleMatt. –

22

Se non si ha accesso al normalizzatore classe o semplicemente non si desidera utilizzarlo è possibile utilizzare la seguente funzione per sostituire la maggior parte (tutti?) delle accentuazioni comuni.

function Unaccent($string) 
{ 
    return preg_replace('~&([a-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8')); 
} 
+0

Uncaught ReferenceError: ENT_QUOTES non definito –

+0

@SimonArnold: Controlla il codice per i simboli '&', o copia e incolla come è. –

+0

Errore mio, ho provato ad usarlo come una funzione javascript: S –

1

Soprattutto quando si abbinano testi a vicenda o contro parole chiave, è utile normalizzare i testi in precedenza. La seguente funzione rimuove tutti i segni diacritici (segni come accenti) da un dato testo con codifica UTF8 e restituisce testo ASCII.

Assicurarsi di avere l'estensione PHP-Normalizer (intl e icu) installata.

Tipp: Si consiglia inoltre di mappare il testo in lettere minuscole prima di eseguire le procedure abbinate ...

<?php 

function normalizeUtf8String($s) 
{ 
    // Normalizer-class missing! 
    if (! class_exists("Normalizer", $autoload = false)) 
     return $original_string; 


    // maps German (umlauts) and other European characters onto two characters before just removing diacritics 
    $s = preg_replace('@\x{00c4}@u' , "AE", $s); // umlaut Ä => AE 
    $s = preg_replace('@\x{00d6}@u' , "OE", $s); // umlaut Ö => OE 
    $s = preg_replace('@\x{00dc}@u' , "UE", $s); // umlaut Ü => UE 
    $s = preg_replace('@\x{00e4}@u' , "ae", $s); // umlaut ä => ae 
    $s = preg_replace('@\x{00f6}@u' , "oe", $s); // umlaut ö => oe 
    $s = preg_replace('@\x{00fc}@u' , "ue", $s); // umlaut ü => ue 
    $s = preg_replace('@\x{00f1}@u' , "ny", $s); // ñ => ny 
    $s = preg_replace('@\x{00ff}@u' , "yu", $s); // ÿ => yu 


    // maps special characters (characters with diacritics) on their base-character followed by the diacritical mark 
     // exmaple: Ú => U´, á => a` 
    $s = Normalizer::normalize($s, Normalizer::FORM_D); 


    $s = preg_replace('@\[email protected]'  , "", $s); // removes diacritics 


    $s = preg_replace('@\x{00df}@u' , "ss", $s); // maps German ß onto ss 
    $s = preg_replace('@\x{00c6}@u' , "AE", $s); // Æ => AE 
    $s = preg_replace('@\x{00e6}@u' , "ae", $s); // æ => ae 
    $s = preg_replace('@\x{0132}@u' , "IJ", $s); // ? => IJ 
    $s = preg_replace('@\x{0133}@u' , "ij", $s); // ? => ij 
    $s = preg_replace('@\x{0152}@u' , "OE", $s); // Π=> OE 
    $s = preg_replace('@\x{0153}@u' , "oe", $s); // œ => oe 

    $s = preg_replace('@\x{00d0}@u' , "D", $s); // Ð => D 
    $s = preg_replace('@\x{0110}@u' , "D", $s); // Ð => D 
    $s = preg_replace('@\x{00f0}@u' , "d", $s); // ð => d 
    $s = preg_replace('@\x{0111}@u' , "d", $s); // d => d 
    $s = preg_replace('@\x{0126}@u' , "H", $s); // H => H 
    $s = preg_replace('@\x{0127}@u' , "h", $s); // h => h 
    $s = preg_replace('@\x{0131}@u' , "i", $s); // i => i 
    $s = preg_replace('@\x{0138}@u' , "k", $s); // ? => k 
    $s = preg_replace('@\x{013f}@u' , "L", $s); // ? => L 
    $s = preg_replace('@\x{0141}@u' , "L", $s); // L => L 
    $s = preg_replace('@\x{0140}@u' , "l", $s); // ? => l 
    $s = preg_replace('@\x{0142}@u' , "l", $s); // l => l 
    $s = preg_replace('@\x{014a}@u' , "N", $s); // ? => N 
    $s = preg_replace('@\x{0149}@u' , "n", $s); // ? => n 
    $s = preg_replace('@\x{014b}@u' , "n", $s); // ? => n 
    $s = preg_replace('@\x{00d8}@u' , "O", $s); // Ø => O 
    $s = preg_replace('@\x{00f8}@u' , "o", $s); // ø => o 
    $s = preg_replace('@\x{017f}@u' , "s", $s); // ? => s 
    $s = preg_replace('@\x{00de}@u' , "T", $s); // Þ => T 
    $s = preg_replace('@\x{0166}@u' , "T", $s); // T => T 
    $s = preg_replace('@\x{00fe}@u' , "t", $s); // þ => t 
    $s = preg_replace('@\x{0167}@u' , "t", $s); // t => t 

    // remove all non-ASCii characters 
    $s = preg_replace('@[^\0-\x80]@u' , "", $s); 


    // possible errors in UTF8-regular-expressions 
    if (empty($s)) 
     return $original_string; 
    else 
     return $s; 
} 
?> 

La funzione di cui sopra si basa principalmente sul seguente articolo: http://ahinea.com/en/tech/accented-translate.html

+0

Quando ho generato xml con questo, un file xml vuoto genera per me. Come usare questa cosa in modo corretto –

1

uso PEAR I18N_UnicodeNormalizer-1.0.0

include('…'); 

echo preg_replace(
'/(\P{L})/ui', // replace all except members of Unicode class "letters", case insensitive 
'', // with nothing 
I18N_UnicodeNormalizer::toNFKD('ÅÉÏÔÙåéïôù') // ù → u + ` 
); 

→ AEIOUaeiou

7

Breve str_replace uso con caratteri personalizzati:

<?php 
    $original_string = "¿Dónde está el niño que vive aquí? En el témpano o en el iglú. ÁFRICA, MÉXICO, ÍNDICE, CANCIÓN y NÚMERO."; 

    $some_special_chars = array("á", "é", "í", "ó", "ú", "Á", "É", "Í", "Ó", "Ú", "ñ", "Ñ"); 
    $replacement_chars = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U", "n", "N"); 

    $replaced_string = str_replace($some_special_chars, $replacement_chars, $original_string); 

    echo $replaced_string; // outputs '¿Donde esta el nino que vive aqui? En el tempano o en el iglu. AFRICA, MEXICO, INDICE, CANCION y NUMERO.' 
?> 
1

Se nessuna delle altre soluzioni stanno lavorando giusto per voi, ecco cosa ha funzionato per me:

<?php 

$string = "áéíóúÁ—whatever"; 

// create an array of the hex codes of the characters you want to replace (formatted as shown) and whatever you want to replace them with. 
$characters = array(
    "[\xF3]" => "&ocacute;", //ó 
    "[\xFC]" => "&uuml;", //ü 
    "[\xF1]" => "&ntilde;", //ñ 
    "[\xEB]" => "&euml;", //ë 
    "[\xE9]" => "&eacute;", //é 
    "[\xBD]" => "&frac12;", //½ 
); 
// note that you must use a two-digit hex code for whatever reason. 
// So, for example, although the hex code for an em dash is 2014, you have to use 97 instead. ("[\x97]" => "&mdash;") 

// separate the key->value array into two separate arrays. Or just make two arrays from the beginning, but it's easier to read this way. 
foreach ($characters as $hex => $html) { 
    $replaceThis[] = $hex; 
    $replaceWith[] = $html; 
} 

$string = preg_replace($replaceThis, $replaceWith, $string); 

?> 

Potrebbe non essere la soluzione più elegante, ma è ks e non richiede alcuna conoscenza delle espressioni regolari.

11

Per coloro che non hanno php 5.3, ho trovato un'altra soluzione che funziona bene e sembra molto completa. Ecco un link al sito web dell'autore http://www.evaisse.net/2008/php-translit-remove-accent-unaccent-21001. Ecco la funzione.

/** 
* Unaccent the input string string. An example string like `ÀØėÿᾜὨζὅБю` 
* will be translated to `AOeyIOzoBY`. More complete than : 
* strtr((string)$str, 
*   "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ", 
*   "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn"); 
* 
* @param $str input string 
* @param $utf8 if null, function will detect input string encoding 
* @author http://www.evaisse.net/2008/php-translit-remove-accent-unaccent-21001 
* @return string input string without accent 
*/ 
function remove_accents($str, $utf8=true) 
{ 
    $str = (string)$str; 
    if(is_null($utf8)) { 
     if(!function_exists('mb_detect_encoding')) { 
      $utf8 = (strtolower(mb_detect_encoding($str))=='utf-8'); 
     } else { 
      $length = strlen($str); 
      $utf8 = true; 
      for ($i=0; $i < $length; $i++) { 
       $c = ord($str[$i]); 
       if ($c < 0x80) $n = 0; # 0bbbbbbb 
       elseif (($c & 0xE0) == 0xC0) $n=1; # 110bbbbb 
       elseif (($c & 0xF0) == 0xE0) $n=2; # 1110bbbb 
       elseif (($c & 0xF8) == 0xF0) $n=3; # 11110bbb 
       elseif (($c & 0xFC) == 0xF8) $n=4; # 111110bb 
       elseif (($c & 0xFE) == 0xFC) $n=5; # 1111110b 
       else return false; # Does not match any model 
       for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ? 
        if ((++$i == $length) 
         || ((ord($str[$i]) & 0xC0) != 0x80)) { 
         $utf8 = false; 
         break; 
        } 

       } 
      } 
     } 

    } 

    if(!$utf8) 
     $str = utf8_encode($str); 

    $transliteration = array(
    'IJ' => 'I', 'Ö' => 'O','Œ' => 'O','Ü' => 'U','ä' => 'a','æ' => 'a', 
    'ij' => 'i','ö' => 'o','œ' => 'o','ü' => 'u','ß' => 's','ſ' => 's', 
    'À' => 'A','Á' => 'A','Â' => 'A','Ã' => 'A','Ä' => 'A','Å' => 'A', 
    'Æ' => 'A','Ā' => 'A','Ą' => 'A','Ă' => 'A','Ç' => 'C','Ć' => 'C', 
    'Č' => 'C','Ĉ' => 'C','Ċ' => 'C','Ď' => 'D','Đ' => 'D','È' => 'E', 
    'É' => 'E','Ê' => 'E','Ë' => 'E','Ē' => 'E','Ę' => 'E','Ě' => 'E', 
    'Ĕ' => 'E','Ė' => 'E','Ĝ' => 'G','Ğ' => 'G','Ġ' => 'G','Ģ' => 'G', 
    'Ĥ' => 'H','Ħ' => 'H','Ì' => 'I','Í' => 'I','Î' => 'I','Ï' => 'I', 
    'Ī' => 'I','Ĩ' => 'I','Ĭ' => 'I','Į' => 'I','İ' => 'I','Ĵ' => 'J', 
    'Ķ' => 'K','Ľ' => 'K','Ĺ' => 'K','Ļ' => 'K','Ŀ' => 'K','Ł' => 'L', 
    'Ñ' => 'N','Ń' => 'N','Ň' => 'N','Ņ' => 'N','Ŋ' => 'N','Ò' => 'O', 
    'Ó' => 'O','Ô' => 'O','Õ' => 'O','Ø' => 'O','Ō' => 'O','Ő' => 'O', 
    'Ŏ' => 'O','Ŕ' => 'R','Ř' => 'R','Ŗ' => 'R','Ś' => 'S','Ş' => 'S', 
    'Ŝ' => 'S','Ș' => 'S','Š' => 'S','Ť' => 'T','Ţ' => 'T','Ŧ' => 'T', 
    'Ț' => 'T','Ù' => 'U','Ú' => 'U','Û' => 'U','Ū' => 'U','Ů' => 'U', 
    'Ű' => 'U','Ŭ' => 'U','Ũ' => 'U','Ų' => 'U','Ŵ' => 'W','Ŷ' => 'Y', 
    'Ÿ' => 'Y','Ý' => 'Y','Ź' => 'Z','Ż' => 'Z','Ž' => 'Z','à' => 'a', 
    'á' => 'a','â' => 'a','ã' => 'a','ā' => 'a','ą' => 'a','ă' => 'a', 
    'å' => 'a','ç' => 'c','ć' => 'c','č' => 'c','ĉ' => 'c','ċ' => 'c', 
    'ď' => 'd','đ' => 'd','è' => 'e','é' => 'e','ê' => 'e','ë' => 'e', 
    'ē' => 'e','ę' => 'e','ě' => 'e','ĕ' => 'e','ė' => 'e','ƒ' => 'f', 
    'ĝ' => 'g','ğ' => 'g','ġ' => 'g','ģ' => 'g','ĥ' => 'h','ħ' => 'h', 
    'ì' => 'i','í' => 'i','î' => 'i','ï' => 'i','ī' => 'i','ĩ' => 'i', 
    'ĭ' => 'i','į' => 'i','ı' => 'i','ĵ' => 'j','ķ' => 'k','ĸ' => 'k', 
    'ł' => 'l','ľ' => 'l','ĺ' => 'l','ļ' => 'l','ŀ' => 'l','ñ' => 'n', 
    'ń' => 'n','ň' => 'n','ņ' => 'n','ʼn' => 'n','ŋ' => 'n','ò' => 'o', 
    'ó' => 'o','ô' => 'o','õ' => 'o','ø' => 'o','ō' => 'o','ő' => 'o', 
    'ŏ' => 'o','ŕ' => 'r','ř' => 'r','ŗ' => 'r','ś' => 's','š' => 's', 
    'ť' => 't','ù' => 'u','ú' => 'u','û' => 'u','ū' => 'u','ů' => 'u', 
    'ű' => 'u','ŭ' => 'u','ũ' => 'u','ų' => 'u','ŵ' => 'w','ÿ' => 'y', 
    'ý' => 'y','ŷ' => 'y','ż' => 'z','ź' => 'z','ž' => 'z','Α' => 'A', 
    'Ά' => 'A','Ἀ' => 'A','Ἁ' => 'A','Ἂ' => 'A','Ἃ' => 'A','Ἄ' => 'A', 
    'Ἅ' => 'A','Ἆ' => 'A','Ἇ' => 'A','ᾈ' => 'A','ᾉ' => 'A','ᾊ' => 'A', 
    'ᾋ' => 'A','ᾌ' => 'A','ᾍ' => 'A','ᾎ' => 'A','ᾏ' => 'A','Ᾰ' => 'A', 
    'Ᾱ' => 'A','Ὰ' => 'A','ᾼ' => 'A','Β' => 'B','Γ' => 'G','Δ' => 'D', 
    'Ε' => 'E','Έ' => 'E','Ἐ' => 'E','Ἑ' => 'E','Ἒ' => 'E','Ἓ' => 'E', 
    'Ἔ' => 'E','Ἕ' => 'E','Ὲ' => 'E','Ζ' => 'Z','Η' => 'I','Ή' => 'I', 
    'Ἠ' => 'I','Ἡ' => 'I','Ἢ' => 'I','Ἣ' => 'I','Ἤ' => 'I','Ἥ' => 'I', 
    'Ἦ' => 'I','Ἧ' => 'I','ᾘ' => 'I','ᾙ' => 'I','ᾚ' => 'I','ᾛ' => 'I', 
    'ᾜ' => 'I','ᾝ' => 'I','ᾞ' => 'I','ᾟ' => 'I','Ὴ' => 'I','ῌ' => 'I', 
    'Θ' => 'T','Ι' => 'I','Ί' => 'I','Ϊ' => 'I','Ἰ' => 'I','Ἱ' => 'I', 
    'Ἲ' => 'I','Ἳ' => 'I','Ἴ' => 'I','Ἵ' => 'I','Ἶ' => 'I','Ἷ' => 'I', 
    'Ῐ' => 'I','Ῑ' => 'I','Ὶ' => 'I','Κ' => 'K','Λ' => 'L','Μ' => 'M', 
    'Ν' => 'N','Ξ' => 'K','Ο' => 'O','Ό' => 'O','Ὀ' => 'O','Ὁ' => 'O', 
    'Ὂ' => 'O','Ὃ' => 'O','Ὄ' => 'O','Ὅ' => 'O','Ὸ' => 'O','Π' => 'P', 
    'Ρ' => 'R','Ῥ' => 'R','Σ' => 'S','Τ' => 'T','Υ' => 'Y','Ύ' => 'Y', 
    'Ϋ' => 'Y','Ὑ' => 'Y','Ὓ' => 'Y','Ὕ' => 'Y','Ὗ' => 'Y','Ῠ' => 'Y', 
    'Ῡ' => 'Y','Ὺ' => 'Y','Φ' => 'F','Χ' => 'X','Ψ' => 'P','Ω' => 'O', 
    'Ώ' => 'O','Ὠ' => 'O','Ὡ' => 'O','Ὢ' => 'O','Ὣ' => 'O','Ὤ' => 'O', 
    'Ὥ' => 'O','Ὦ' => 'O','Ὧ' => 'O','ᾨ' => 'O','ᾩ' => 'O','ᾪ' => 'O', 
    'ᾫ' => 'O','ᾬ' => 'O','ᾭ' => 'O','ᾮ' => 'O','ᾯ' => 'O','Ὼ' => 'O', 
    'ῼ' => 'O','α' => 'a','ά' => 'a','ἀ' => 'a','ἁ' => 'a','ἂ' => 'a', 
    'ἃ' => 'a','ἄ' => 'a','ἅ' => 'a','ἆ' => 'a','ἇ' => 'a','ᾀ' => 'a', 
    'ᾁ' => 'a','ᾂ' => 'a','ᾃ' => 'a','ᾄ' => 'a','ᾅ' => 'a','ᾆ' => 'a', 
    'ᾇ' => 'a','ὰ' => 'a','ᾰ' => 'a','ᾱ' => 'a','ᾲ' => 'a','ᾳ' => 'a', 
    'ᾴ' => 'a','ᾶ' => 'a','ᾷ' => 'a','β' => 'b','γ' => 'g','δ' => 'd', 
    'ε' => 'e','έ' => 'e','ἐ' => 'e','ἑ' => 'e','ἒ' => 'e','ἓ' => 'e', 
    'ἔ' => 'e','ἕ' => 'e','ὲ' => 'e','ζ' => 'z','η' => 'i','ή' => 'i', 
    'ἠ' => 'i','ἡ' => 'i','ἢ' => 'i','ἣ' => 'i','ἤ' => 'i','ἥ' => 'i', 
    'ἦ' => 'i','ἧ' => 'i','ᾐ' => 'i','ᾑ' => 'i','ᾒ' => 'i','ᾓ' => 'i', 
    'ᾔ' => 'i','ᾕ' => 'i','ᾖ' => 'i','ᾗ' => 'i','ὴ' => 'i','ῂ' => 'i', 
    'ῃ' => 'i','ῄ' => 'i','ῆ' => 'i','ῇ' => 'i','θ' => 't','ι' => 'i', 
    'ί' => 'i','ϊ' => 'i','ΐ' => 'i','ἰ' => 'i','ἱ' => 'i','ἲ' => 'i', 
    'ἳ' => 'i','ἴ' => 'i','ἵ' => 'i','ἶ' => 'i','ἷ' => 'i','ὶ' => 'i', 
    'ῐ' => 'i','ῑ' => 'i','ῒ' => 'i','ῖ' => 'i','ῗ' => 'i','κ' => 'k', 
    'λ' => 'l','μ' => 'm','ν' => 'n','ξ' => 'k','ο' => 'o','ό' => 'o', 
    'ὀ' => 'o','ὁ' => 'o','ὂ' => 'o','ὃ' => 'o','ὄ' => 'o','ὅ' => 'o', 
    'ὸ' => 'o','π' => 'p','ρ' => 'r','ῤ' => 'r','ῥ' => 'r','σ' => 's', 
    'ς' => 's','τ' => 't','υ' => 'y','ύ' => 'y','ϋ' => 'y','ΰ' => 'y', 
    'ὐ' => 'y','ὑ' => 'y','ὒ' => 'y','ὓ' => 'y','ὔ' => 'y','ὕ' => 'y', 
    'ὖ' => 'y','ὗ' => 'y','ὺ' => 'y','ῠ' => 'y','ῡ' => 'y','ῢ' => 'y', 
    'ῦ' => 'y','ῧ' => 'y','φ' => 'f','χ' => 'x','ψ' => 'p','ω' => 'o', 
    'ώ' => 'o','ὠ' => 'o','ὡ' => 'o','ὢ' => 'o','ὣ' => 'o','ὤ' => 'o', 
    'ὥ' => 'o','ὦ' => 'o','ὧ' => 'o','ᾠ' => 'o','ᾡ' => 'o','ᾢ' => 'o', 
    'ᾣ' => 'o','ᾤ' => 'o','ᾥ' => 'o','ᾦ' => 'o','ᾧ' => 'o','ὼ' => 'o', 
    'ῲ' => 'o','ῳ' => 'o','ῴ' => 'o','ῶ' => 'o','ῷ' => 'o','А' => 'A', 
    'Б' => 'B','В' => 'V','Г' => 'G','Д' => 'D','Е' => 'E','Ё' => 'E', 
    'Ж' => 'Z','З' => 'Z','И' => 'I','Й' => 'I','К' => 'K','Л' => 'L', 
    'М' => 'M','Н' => 'N','О' => 'O','П' => 'P','Р' => 'R','С' => 'S', 
    'Т' => 'T','У' => 'U','Ф' => 'F','Х' => 'K','Ц' => 'T','Ч' => 'C', 
    'Ш' => 'S','Щ' => 'S','Ы' => 'Y','Э' => 'E','Ю' => 'Y','Я' => 'Y', 
    'а' => 'A','б' => 'B','в' => 'V','г' => 'G','д' => 'D','е' => 'E', 
    'ё' => 'E','ж' => 'Z','з' => 'Z','и' => 'I','й' => 'I','к' => 'K', 
    'л' => 'L','м' => 'M','н' => 'N','о' => 'O','п' => 'P','р' => 'R', 
    'с' => 'S','т' => 'T','у' => 'U','ф' => 'F','х' => 'K','ц' => 'T', 
    'ч' => 'C','ш' => 'S','щ' => 'S','ы' => 'Y','э' => 'E','ю' => 'Y', 
    'я' => 'Y','ð' => 'd','Ð' => 'D','þ' => 't','Þ' => 'T','ა' => 'a', 
    'ბ' => 'b','გ' => 'g','დ' => 'd','ე' => 'e','ვ' => 'v','ზ' => 'z', 
    'თ' => 't','ი' => 'i','კ' => 'k','ლ' => 'l','მ' => 'm','ნ' => 'n', 
    'ო' => 'o','პ' => 'p','ჟ' => 'z','რ' => 'r','ს' => 's','ტ' => 't', 
    'უ' => 'u','ფ' => 'p','ქ' => 'k','ღ' => 'g','ყ' => 'q','შ' => 's', 
    'ჩ' => 'c','ც' => 't','ძ' => 'd','წ' => 't','ჭ' => 'c','ხ' => 'k', 
    'ჯ' => 'j','ჰ' => 'h' 
    ); 
    $str = str_replace(array_keys($transliteration), 
         array_values($transliteration), 
         $str); 
    return $str; 
} 
//- remove_accents() 
+1

Ecco alcuni altri elementi da aggiungere a questo: ''' '=>"' ", '̧' => '', 'ḩ' => 'h', '' '=>"' ", '' '=>"' ", '' '=>"' ", 'ừ' => 'u', 'ế' => 'e', ​​'ả' => 'a', 'ị' => 'i', 'ậ' => 'a', 'ệ' => 'e', ​​'ỉ' => 'i', 'ộ' => 'o', 'ồ' => 'o' , 'ề' => 'e', ​​'ơ' => 'o', 'ạ' => 'a', 'ẵ' => 'a', 'ư' => 'u', 'ắ' = > 'a', 'ằ' => 'a', 'ầ' => 'a', 'ḑ' => 'd', 'Ḩ' => 'H', 'Ḑ' => 'D', 'ḑ' => 'd', 'ş' => 's', 'ā' => 'a', 'ţ' => 't', ' – brenjt

Problemi correlati