Problème avec preg_replace
Résolu
T-SonS
Messages postés
307
Statut
Membre
-
T-SonS Messages postés 307 Statut Membre -
T-SonS Messages postés 307 Statut Membre -
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
307
Statut
Membre
49
Parfait, merci beaucoup!