Problème avec preg_replace
Résolu
T-SonS
Messages postés
233
Date d'inscription
Statut
Membre
Dernière intervention
-
T-SonS Messages postés 233 Date d'inscription Statut Membre Dernière intervention -
T-SonS Messages postés 233 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
dans le but de remplacer tous les accents et caractères spéciaux d'une chaine, j'utilise la fonction preg_replace qui me pose quelques soucis.
Au lieu de m'afficher simplement "etudia" lorsque je rentre "étudià" par exemple, la fonction m'écrit "eetudiea".
Quelqu'un saurait-il d'ou peut venir ce problème?
merci d'avance.
dans le but de remplacer tous les accents et caractères spéciaux d'une chaine, j'utilise la fonction preg_replace qui me pose quelques soucis.
Au lieu de m'afficher simplement "etudia" lorsque je rentre "étudià" par exemple, la fonction m'écrit "eetudiea".
Quelqu'un saurait-il d'ou peut venir ce problème?
merci d'avance.
function rewrite($label) { $search = array ('@[èéê???oe]@i','@[àáâã?ä]@i','@[ìíî??ï]@i','@[éèêë??]@i','@[òöôó?ø]@i', '@[ç]@i','@[^a-zA-Z0-9]@'); $replace = array ('e','a','i','u','o','c','-'); $label = preg_replace($search, $replace, $label); return $label; } echo rewrite("étudià"); //renvoie eetudiea
1 réponse
Salut,
Il faut utiliser le modificateur u pour traiter les chaines en UTF-8 :
Bonne journée
Il faut utiliser le modificateur u pour traiter les chaines en UTF-8 :
function rewrite($label) { $search = array ('@[èéê???oe]@iu','@[àáâã?ä]@iu','@[ìíî??ï]@iu','@[éèêë??]@iu','@[òöôó?ø]@iu', '@[ç]@iu','@[^a-zA-Z0-9]@u'); $replace = array ('e','a','i','u','o','c','-'); $label = preg_replace($search, $replace, $label); return $label; } echo rewrite("étudià"); //renvoie etudia
Bonne journée
T-SonS
Messages postés
233
Date d'inscription
Statut
Membre
Dernière intervention
49
Parfait, merci beaucoup!