Version complète: sur le forum Webmaster Hub : fonction str_replace
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
gontran
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
michmuch51
Salut Gontran

essai ça:
CODE
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
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
Il vaut mieux utiliser strtr(), non ?

Comme ceci par exemple:
CODE
$url=strtr("$url", ",'âàäçéèêëîïôöùûü&?: ", "--aaaceeeeiioouuu...-");
MS-DOS_1991
Et pourquoi pas un simple
CODE
str_replace(array('é', 'è', 'ê'), 'e', $text);
?
Dan
CITATION(MS-DOS_1991 @ jeudi 31 août 2006, 10h16) *
Et pourquoi pas un simple
CODE
str_replace(array('é', 'è', 'ê'), 'e', $text);
?

Parce que dans ce cas tu ne traites que les é, è, ë, ë ... mais pas les autres caractères wink.gif
str_replace n'est pas fait pour cela, c'est strtr() qui est le plus souple à l'usage.
Bourinho
Salut,

"strtr" est le plus souple sans aucun doute... mais est il le plus efficace pour ce genre de substitution???
Dan
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 wink.gif

Dan
gontran
merci pour toute vos reponse....

j'ai fais ceci et ca marche parfaitement

CODE
$accent= array("é", "è", "à", "ê");
      $remplace= array("e", "e", "a", "e");
      $visu= str_replace($accent, $remplace, $new_str);


Merci
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.