Remplacer les caractères spéciaux par des caractères de base en PHP
La tâche consiste à convertir les caractères accentués en leurs équivalents de base en PHP. Par exemple, "ã" devrait devenir "a" et "é" devrait devenir "e".
Solution :
Bien qu'il soit possible d'effectuer des opérations mathématiques sur ASCII valeurs, il existe des méthodes plus simples.
Utilisation de la classe Normalizer :
PHP fournit une classe Normalizer qui peut simplifier le processus de conversion de caractères. Le code suivant démontre son utilisation :
<code class="php">use Normalizer; $string = "ãé"; $base_string = Normalizer::normalize($string, Normalizer::FORM_D);</code>
Fonction personnalisée :
Si la classe Normalizer n'est pas disponible, vous pouvez créer une fonction personnalisée pour effectuer le remplacement :
<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 utilise des expressions régulières pour faire correspondre et remplacer les caractères accentués par leurs équivalents de base.
Utilisation :
<code class="php">$string = "ãé"; $base_string = Unaccent($string);</code>
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!