PROJET AUTOBLOG


Shaarli - le hollandais volant

Site original : Shaarli - le hollandais volant

⇐ retour index

[PHP] Note : virer tous les accents d’une chaîne unicode (latin)

samedi 8 décembre 2018 à 15:06

Pour 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 « &eacute ».
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.