Enlever les accents d’une chaine
Il arrive parfois qu’on est besoin de pouvoir enlever les accents d’une chaine.
Cette fonction est simple, il suffit de lui passer en paramètre une chaine pour lui enlever ces accents.
<?php function enleve_accents($chaine, $charset='utf-8') { $chaine = htmlentities($chaine, ENT_NOQUOTES, $charset); $chaine = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $chaine); $chaine = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $chaine); // pour les ligatures e.g. 'œ' $chaine = preg_replace('#&[^;]+;#', '', $chaine); // supprime les autres caractères return $chaine; }
Exemple:
<?php // On utilise la fonction: echo("Avant: é è ç à ê â")."<br>\n"; echo "Après: ".enleve_accents("é è ç à ê â"); // ou: echo("Avant: J'ai été au cinéma")." \n"; echo "Après: ".enleve_accents("J'ai été au cinéma"); ?>
Tous les codes sont testés et sont fonctionnels, si il arrive qu'un de ces codes ne fonctionne pas chez vous, merci de me le signaler.