Remplacement des caractères spéciaux par leurs équivalents de base en PHP
Question : Est-il possible de remplacer les caractères spéciaux par leur équivalents de base en PHP, comme convertir "ã" en "a" et "é" en "e" ?
Réponse : Oui, il est possible de remplacer les caractères accentués par leur base équivalents utilisant PHP.
Méthode :
Si vous avez accès à la classe Normalizer, vous pouvez utiliser la méthode Normalizer::normalize() avec le Normalizer::FORM_D constante :
<code class="php">$string = "ãé"; $baseString = Normalizer::normalize($string, Normalizer::FORM_D);</code>
Si vous n'avez pas accès à la classe Normalizer, vous pouvez utiliser la fonction suivante :
<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 les entités HTML en leurs caractères correspondants puis supprime les marques d'accent courantes à l'aide d'expressions régulières.
Exemple :
<code class="php">$string = "ãé"; $baseString = Unaccent($string);</code>
La variable $baseString résultante contiendra "ae".
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!