Vous avez déjà lu sur des forums des fonctions qui modifient les caractères accentués soit en utilisant str_replace() soit en utilisant strstr(), mais vous rencontrez les problèmes suivants :
Ce problème m'a vallu quelques minutes de réfllexion. Et c'est pour cette raison que j'ai décidé de partager l'aboutissement de ma réflexion pour vous faire gagner du temps....
A travers ce problème, j'ai pu constater que ces fonctions ne répondaient pas ou répondaient mal, si :
Pour ce dernier point, vous ne devez pas avant d'utiliser ces fonctions, faire subir une transformation " avec htmlentities par exemple ". En effet, ces fonctions ont besoins des valeurs brutes ! Qu'est-ce que j'entends par valeurs brutes, ce sont les valeurs directement envoyées par l'utilisateur.
Si vous respectez ces deux conditions, vous verrez votre code fonctionnera et vous n'oublierez jamais mon site :-)
strtolower permet de mettre toute la chaine de caractère enn minuscule. Pour la mettre en majuscule, utilisez strtoupper().
La structure de base (avec une seule condition) de str_replace est : str_replace ( ' valeur à modifier', ' la valeur à modifier sera remplacer par' , 'ma chaine de caractères' )
La strucutre avancée avec plusieurs conditions de str_replace est : str_replace ( array ( 'valeur à modifier 1' , 'valeur à modifier 2' ) , array( ' la valeur à modifier 1 sera remplacer par' , ' la valeur à modifier 2 sera remplacer par' ), 'ma chaine de caractères' ) );
si vous trouvez que cette méthode est contraignante lorsqu'on a plusieurs critères, alors je vais vous présenter une autre méthode qui vous évite de mettre à chaque fois les apostrophes et les virgules.
$modifier = strtr($ma_chaine_a_modifier, 'ÁÀÂÄÃÅÇÉÈÊËÍÏÎÌÑÓÒÔÖÕÚÙÛÜÝ', 'AAAAAACEEEEEIIIINOOOOOUUUUY');
$modifier = strtr($ma_chaine_a_modifier, 'áàâäãåçéèêëíìîïñóòôöõúùûüýÿ', 'aaaaaaceeeeiiiinooooouuuuyy');
Nous touchons la fin de ce tutoriel, j'espère qu'il vous sera utile. En cas de dysfonctionnement, n'hésitez pas à poster votre commentaire.
cliquez sur
une étoile
1 2 3 4 5