Compare deux chaînes et ignore (mais ne remplace pas) les accents. PHP
P粉476046165
2023-08-17 16:16:51
<p>J'obtiens (par exemple) deux chaînes : </p>
<pre class="brush:php;toolbar:false;">$a = "joao";
$b = "joão" ;
if (strtoupper($a) == strtoupper($b)) {
écho $b;
}</pré>
<p>J'espère que c'est vrai même avec l'accent. Cependant, j'en ai besoin pour ignorer les accents plutôt que de les remplacer, car je dois afficher "joão" au lieu de "joao". </p>
<p>Toutes les réponses que j'ai vues remplacent "ã" par "a" au lieu de rendre la comparaison vraie. J'ai lu des articles sur la normalisation, mais je n'arrive pas non plus à la faire fonctionner. Des idées? Merci. </p>
Je souhaite partager une solution élégante qui évite d'utiliser des entités html et ne nécessite pas de lister manuellement tous les remplacements de caractères. Ceci est une traduction php de thispost.
Sortie :
Convertissez simplement les symboles accentués en leurs homologues non accentués et comparez les chaînes. La fonction dans ma réponse supprimera les accents pour vous.
Sortie :
Démo