ToutSurTout.biz
Supprimer les accents d'une chaine de caractère


Fonction toute simple avec strtr :

function supprimer_accents($chaine)
{
    $accents = « áéíóúýÁÉÍÓÚÝàèìòùÀÈÌÒÙäëïöüÿÄËÏÖÜâêîôûÂÊÎÔÛåÅøØßçÇãñõÃÑÕ »;
    $sans = « aeiouyAEIOUYaeiouAEIOUaeiouyAEIOUaeiouAEIOUaAoOscCanoANO »;
    return strtr($chaine, $accents, $sans);
}

Une autre méthode avec cette fois-ci str_replace, qui reste bien plus performant niveau temps de traitement (voir l'article strtr vs str_replace)
function supprimer_accents($chaine)
{
    $accents = array('À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ò','Ó','Ô','Õ','Ö',
                                'Ù','Ú','Û','Ü','Ý','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ð',
                                'ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ');
    $sans = array('A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','O','O','O','O','O',
                           'U','U','U','U','Y','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','o','o','o','o','o','o',
                           'u','u','u','u','y','y');
    return str_replace($accents, $sans, $chaine);
}