Maison >développement back-end >tutoriel php >Comment convertir des caractères accentués en équivalents de base en PHP ?

Comment convertir des caractères accentués en équivalents de base en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-30 15:44:26941parcourir

How to Convert Accented Characters to Base Equivalents in PHP?

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

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