1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| function supprAccents($str = null, $encoding = 'UTF-8')
{
if (!is_string($str))
{
return false;
}
/* transformer les caractères accentués en entités HTML */
$str = htmlentities($str, ENT_NOQUOTES, $encoding);
/* remplacer les entités HTML pour avoir juste le premier caractère non accentué
* Exemple : "&ecute;" => "e", "&Ecute;" => "E", "Ã " => "a" ... */
$str = preg_replace('#&([A-za-z])(?:acute|grave|cedil|circ|orn|ring|slash|th|tilde|uml);#', '\1', $str);
/* remplacer les ligatures tel que : , Æ ...
Exemple "Å" => "oe" */
$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str);
/* Supprime les espaces */
$str = preg_replace('/\s/', '-', $str);
/* Supprimer tout le reste */
$str = preg_replace('#&[^;]+:;#', '', $str);
$str = preg_replace('#\'#', '-', $str);
$str = strtolower($str);
return $str;
} |