gontran Posté 30 Août 2006 Posté 30 Août 2006 (modifié) Bonsoir le Hub, je me pose une petite question... est il possible de remplacer plusieurs caractere dans une seul fonction str_replace... je m'explique je voudrais, par exemple, remplcer le é per e, puis le è par e, puis le ê par e, etc... merci Modifié 30 Août 2006 par gontran
michmuch51 Posté 31 Août 2006 Posté 31 Août 2006 Salut Gontran essai ça: function a_plu_accent($text){$text=ereg_replace('é','e', $text);$text=ereg_replace('è','e', $text);$text=ereg_replace('ç','c', $text);$text=ereg_replace('à','a', $text);$text=ereg_replace('ê','e', $text);$text=ereg_replace('î','i', $text);$text=ereg_replace('ô','o', $text);$text=ereg_replace('â','a', $text);$text=ereg_replace('û','u', $text);$text=ereg_replace('ù','u', $text);return $text;}echo a_plu_accent($ton_texte);
Bourinho Posté 31 Août 2006 Posté 31 Août 2006 Salut, Tu peux voir ce que tu peux faire en lisant la partie du manuel php decrivant les possibilites de cette fonction : str_replace sur manuelphp.com Tu peux faire ce que tu souhaites en placant des tableaux en parametres... A+
Dan Posté 31 Août 2006 Posté 31 Août 2006 Il vaut mieux utiliser strtr(), non ? Comme ceci par exemple: $url=strtr("$url", ",'âàäçéèêëîïôöùûü&?: ", "--aaaceeeeiioouuu...-");
MS-DOS_1991 Posté 31 Août 2006 Posté 31 Août 2006 Et pourquoi pas un simple str_replace(array('é', 'è', 'ê'), 'e', $text); ?
Dan Posté 31 Août 2006 Posté 31 Août 2006 Et pourquoi pas un simple str_replace(array('é', 'è', 'ê'), 'e', $text); ? Parce que dans ce cas tu ne traites que les é, è, ë, ë ... mais pas les autres caractères str_replace n'est pas fait pour cela, c'est strtr() qui est le plus souple à l'usage.
Bourinho Posté 31 Août 2006 Posté 31 Août 2006 Salut, "strtr" est le plus souple sans aucun doute... mais est il le plus efficace pour ce genre de substitution???
Dan Posté 31 Août 2006 Posté 31 Août 2006 Facile à voir. Tu fais une boucle qui s'exécute 1000 fois avec strtr() et 1000 fois avec une série de str_replace() pour chaque lettre... En comparant les temps entre les deux exécutions, tu auras ta réponse Dan
gontran Posté 31 Août 2006 Auteur Posté 31 Août 2006 merci pour toute vos reponse.... j'ai fais ceci et ca marche parfaitement $accent= array("é", "è", "à", "ê"); $remplace= array("e", "e", "a", "e"); $visu= str_replace($accent, $remplace, $new_str); Merci
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant