#18041 - [PHP] Note : virer tous les accents d’une chaîne unicode (latin)
https://lehollandaisvolant.net/?mode=links&id=20181208140630Pour enlever les accents, tildes, trémas, cédilles de toutes les lettres diacritiques latines, en PHP :
$texte = htmlentities($texte, ENT_QUOTES, 'UTF-8');
$texte = preg_replace('#&([a-z]{1,2})(acute|grave|circ|uml|cedil|tilde|ring|slash|caron|lig);#', '$1', $texte);
On commence par transformer les lettres accentuées en entités HTML : « é » devient « é ».
Ensuite, on remplace cette chaîne la par la première lettre après le « & ».
Ces entités sont toutes formées de la même façon :
à => à
è => è
ò => ò
ä => ä
ö => ö
ü => ü
Pour les ligatures, c’est pareil :
œ => œ
æ => æ
ß => $szlig;
Par contre ça ne fait que les minusucles, les majuscules ne marchent pas comme ça.