Comportement inexpliqué de preg_replace
Posté : 23 mars 2011, 13:37
Hi everyone!
J'ai un code tout simple qui est censé me permettre de remplacer les caractères accentués d'une chaine:
J'obtiens: ee_ei_eu_ea_eo
Pourquoi ça me rajoute un e devant chaque caractère?
Merci beaucoup pour votre aide!!
J'ai un code tout simple qui est censé me permettre de remplacer les caractères accentués d'une chaine:
$newcat = preg_replace('#[\s]{1,}#', '_', $newcat);
$search = array ('#[éèêë]#i', '#[àâ]#i', '#[îï]#i', '#[ûùü]#i', '#[ôö]#i', '#[ç]#i', '#[^a-zA-Z0-9\-_]#');
$replace = array ('e', 'a', 'i', 'u', 'o', 'c', '');
$newcat = preg_replace($search, $replace, $newcat);
Si j'utilise ce code par exemple avec la chaine suivante: é î ü à ôJ'obtiens: ee_ei_eu_ea_eo
Pourquoi ça me rajoute un e devant chaque caractère?
Merci beaucoup pour votre aide!!