PHP - remplacer dans une chaine de caractère
Bonjour,
voilà je cherche à faire un remplacement particulier en PHP :
remplacer dans une chaine "/" par ":" sauf dans le cas ou "[/" (le slash est précéder d'un crocher)
exemple : la chaine "maison /toto / titi" devient après transformation "maison /toto : titi"
Merci d'avance
voilà je cherche à faire un remplacement particulier en PHP :
remplacer dans une chaine "/" par ":" sauf dans le cas ou "[/" (le slash est précéder d'un crocher)
exemple : la chaine "maison /toto / titi" devient après transformation "maison /toto : titi"
Merci d'avance
Configuration: Windows XP Firefox 3.0
8 réponses
-
ContributeurBonjour,
Pour ton cas il faut que tu utilise les expressions régulière en PHP. Par contre ça fait un sacré bout de temps que je n'ai pas mis le nez dans du php donc je ne sais plus exactement la syntaxe qui te correspondrait au niveau de l'expresssion régulière.
Je te conseilles de regarder ce que tu trouve sur google en tutoriel sur les regex PHP, et notamment te documenter sur le site même : https://www.commentcamarche.net/contents/803-php-expressions-regulieres
ps: sur la page ce qui t'intéressera sera surtout la fonction " ereg_replace() "
Bon courage.
-
JE suis un peu debutant en PHP.
Quelqu'un peut t'il donner plus de precisions.
Merci-
-
ContributeurSinon pour faire plus simple tu as la fonction 'str_replace'.
La documentation est sur cette page : http://www.manuelphp.com/php/function.str-replace.php
Pour ton cas tu n'auras qu'à faire quelque chose dans ce genre :
$chaine = "\titi \ toto"; $nouvelle_chaine = str_replace(" \\ "," : ",$chaine); echo $nouvelle_chaine;
-
-
JE pense que tu n'as pas bien compris mon cas :
la chaine "maison /toto /titi" devient après transformation "maison /toto :titi"
-
la chaine "maison \/toto\ /titi" devient après transformation "maison \/toto\ :titi"
-
la chaine "maison [/ toto /titi" devient après transformation "maison [/ toto :titi"
-
remplacer dans une chaine un "/" par un ":" sauf dans le cas ou "[/" (le slash est précéder d'un crocher)
code PHP ?-
-
@Eldestje ne cherche pas des conseils.
Je cherche de l'aide -
@bono92bah dans ce cas la ... je vais pas y aller par 4 chemins ^^
Le [ est un métacaractère, tout comme le \ ...
Le \ sert à échapper le caractère qu'il précède afin qu'il ne soit pas transformé par une fonction ...
Donc le plus simple est de mettre un \ avant le / au lieu de mettre un crochet ...
-
-
$chaine = "maison \[\/ toto /titi"; $nouvelle_chaine = str_replace("/"," : ",$chaine); echo $nouvelle_chaine;
Je te garanti pas le résultat, mais je pense que c'est ca ... Les caractères spécifiques sont à échapper à l'aide d'un ANTISLASH (\)... -
ContributeurS'il suffit juste de faire le remplacement devant la chaine "titi" dans ce cas :
$chaine = "\titi \ toto"; $nouvelle_chaine = str_replace(" \\titi "," :titi ",$chaine); echo $nouvelle_chaine;
Après libre à toi de faire plus complexe et d'utiliser les regexp (voir la page donnée plus haut)