Maison  >  Article  >  développement back-end  >  Comment puis-je supprimer les accents des caractères en PHP ?

Comment puis-je supprimer les accents des caractères en PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 00:27:29755parcourir

How Can I Remove Accents from Characters in PHP?

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('~&amp;([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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn