Example #1
0
function translitteration_rapide($texte, $charset='AUTO', $complexe='') {
	static $trans;
	if ($charset == 'AUTO')
		$charset = $GLOBALS['meta']['charset'];
	if (!strlen($texte))
		return $texte;

	$table_translit ='translit'.$complexe;

	// 2. Translitterer grace a la table predefinie
	if (!$trans[$complexe]) {
		global $CHARSET;
		load_charset($table_translit);
		foreach ($CHARSET[$table_translit] as $key => $val)
			$trans[$complexe][caractere_utf_8($key)] = $val;
	}

	return str_replace(array_keys($trans[$complexe]),array_values($trans[$complexe]),$texte);
}
Example #2
0
function translitteration($texte, $charset = 'AUTO', $complexe = '')
{
    static $trans;
    if ($charset == 'AUTO') {
        $charset = read_meta('charset');
    }
    $charset = strtolower($charset);
    $table_translit = 'translit' . $complexe;
    // 1. Passer le charset et les &eacute en utf-8
    $texte = unicode_to_utf_8(html2unicode(charset2unicode($texte, $charset, true)));
    // 2. Translitterer grace a la table predefinie
    if (!$trans[$complexe]) {
        global $CHARSET;
        load_charset($table_translit);
        reset($CHARSET[$table_translit]);
        while (list($key, $val) = each($CHARSET[$table_translit])) {
            $trans[$complexe][caractere_utf_8($key)] = $val;
        }
    }
    if ($GLOBALS['flag_strtr2']) {
        $texte = strtr($texte, $trans[$complexe]);
    } else {
        $tr = $trans[$complexe];
        while (list($from, $to) = each($tr)) {
            $texte = str_replace($from, $to, $texte);
        }
    }
    /*
    	// Le probleme d'iconv c'est qu'il risque de nous renvoyer des ? alors qu'on
    	// prefere garder l'utf-8 pour que la chaine soit indexable.
    	// 3. Translitterer grace a iconv
    	if ($GLOBALS['flag_iconv'] && preg_match('/&#0*([0-9]+);/', $texte)) {
    		$texte = iconv('utf-8', 'ascii//translit', $texte);
    	}
    */
    return $texte;
}