Bonjour à tous,

Je reste perplexe devant le résultat obtenu...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
function NomToCodeUrl($in) {
	$search = array ('@[éèêëÊË]@i','@[àâäÂÄ\@]@i','@[îïÎÏ]@i','@[ûùüÛÜ]@i','@[ôöÔÖ]@i','@[ç]@i','@[ ]@i','@[^a-zA-Z0-9_-]@');
	$replace = array ('e','a','i','u','o','c','-','');
	//la fonction rtrim supprime les espaces en fin de chaine
	return rtrim(preg_replace($search, $replace, $in));
}
Ma fonction est censé prendre une String et la convertir :
Exemple attendu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$StringEntree = "Il était une fois @ l'ouest";
$StringSortie = "Il-etait-une-fois-a-louest";
Hors le problème c'est que j'obtiens : 'Il-eetait-une-fois-a-louest'

J'obtiens un doublement des e

Et par exemple si je passe 'für' j'obtiens : 'feur'... au lieu de 'fur' !

Bizarre...

Et quand je modifie $replace = array ('e','a','i','u','o','c','-',''); en $replace = array ('','a','i','u','o','c','-',''); je n'ai plus le doublement des e, mais j'ai pu de e à la place des éèëê...

Une idée ??

Merci d'avance, là je ne vois pas...

Cordialement,

Thec