no save
Assistance
Achat
News

Forum | webmastering
Besoin d'aide avec preg_replace
Pitouli, le lun. 06 juil. 2009 à 23:46:19
Bonjour !

J'ai une fonction de "nettoyage" qui me cause un petit souci :

function nettoyer($in) {
$search = array ('@[áãàâäÂÄ]@i','@[éèêëÊË]@i','@[ìíiiîïÎÏ]@i','@[úûùüÛÜ]@i','@[òóõôöÔÖ]@i','@[ñÑ]@i','@[ýÿÝ]@i','@[ç]@i','@[ ]@i','@[^a-zA-Z0-9_.]@');
$replace = array ('a','e','i','u','o','n','y','c','_','');
return preg_replace($search, $replace, $in);
}
Et si je fais ceci :

<?=nettoyer('àé')?>
Le problème est que, au lieu d'avoir "ae", j'ai "aaae".

?!

J'ai fais un petit test : j'ai changé l'ordre dans mes deux arrays de cette manière :

function nettoyer($in) {
$search = array ('@[éèêëÊË]@i','@[áãàâäÂÄ]@i','@[ìíiiîïÎÏ]@i','@[úûùüÛÜ]@i','@[òóõôöÔÖ]@i','@[ñÑ]@i','@[ýÿÝ]@i','@[ç]@i','@[ ]@i','@[^a-zA-Z0-9_.]@');
$replace = array ('e','a','i','u','o','n','y','c','_','');
return preg_replace($search, $replace, $in);
}
(le groupe des E est avant celui des A)

Et cette fois si, quand je fais

<?=nettoyer('àé')?>
J'obtiens "eaee" au lieu de "ae".

Il semblerait donc que la lettre du premier "groupe" de l'array se mete avant chacun des caractères nettoyés. Auriez vous une solution à ce petit problème ?

Merci beaucoup,

Pitouli


kkz_mil3k
06 juil.
Suivant
REPONSES
kkz_mil3k
06 juil.
kkz_mil3k
06 juil.
Pitouli
07 juil.
Pitouli
07 juil.
Version Web
Réalisé par RedShift
no save