Désaccentuation des caractères en PHP
En PHP, l'extraction du caractère de base de son homologue accentué peut être réalisée en utilisant diverses méthodes. Une approche consiste à utiliser la classe Normalizer, qui offre des capacités natives de normalisation des caractères. Malheureusement, la classe Normalizer peut ne pas être disponible dans les anciennes versions de PHP ou sur certaines plateformes d'hébergement.
Une méthode alternative consiste à utiliser des expressions régulières et la substitution de caractères. La fonction suivante, connue sous le nom de Unaccent, supprime efficacement les marques d'accent courantes d'une chaîne :
<code class="php">function Unaccent($string) { return preg_replace('~&([a-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '', htmlentities($string, ENT_QUOTES, 'UTF-8')); }</code>
Cette fonction convertit d'abord les caractères accentués en leurs entités HTML à l'aide d'entités html. Il applique ensuite une expression régulière qui identifie et capture le caractère accentué, y compris la marque d'accent. L'espace réservé $1 dans le modèle de remplacement garantit que seul le caractère de base est conservé.
Par exemple, l'utilisation de cette fonction sur "ã" et "é" donnerait respectivement "a" et "e".
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!