Problème avec les chaines de caractères

nisaloncaje Messages postés 154 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 septembre 2008 - 19 nov. 2006 à 19:23
nisaloncaje Messages postés 154 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 septembre 2008 - 26 nov. 2006 à 16:06
bonjour à tous :

j'ai le problème suivant en php :

j'ai une chaine de caractères $str. Cette chaine peut contenir deux sous chaines : $ss_str et $ss_str2

J'aimerais que pour chaque chaine $ss_str trouvée dans $str, une fois seulement, si elle existe, la chaine $ss_str2 qui la suit, et uniquement celle qui la suit soit remplacée par une chaine $ss_str3.

Je ne sais pas si j'ai été très clair donc je vais donné un exemple

$ss_str = '(';
$ss_str2 = ')';
$ss_str3=']'
$str = 'un message (dont certaine parties sont entre parenthèses) me pose des difficultés : la parenthèse ) ne doit pas etre remplacée.';

Ainsi il faudrait que l'on obtienne le message suivant :
'un message (dont certaine parties sont entre parenthèses] me pose des difficultés : la parenthèse ) ne doit pas etre remplacée.';

6 réponses

JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
20 nov. 2006 à 00:12
<?php
$ss_str = '(';
$ss_str2 = ')';
$ss_str3=']'
$str = 'un message (dont certaine parties sont entre parenthèses) me pose des difficultés : la parenthèse ) ne doit pas etre remplacée.';
if(strstr($str,$ss_str)!=FALSE && strstr($str,$ss_str2)!=FALSE){

$pos=($str,$ss_str); // la position de la première chaine
$str_coupee=explode($ss_str,$str,1); // on coupe en 2

$str2_coupee=explode($ss_str2,$str_coupee[1],1); // on découpe de nouveau

// on reassemble
$str=$str_coupee[0].$ss_str.$str2_coupee[0].$ss_str3.$str2_coupee[1];

}
?>

Voilà, ça devrait marcher (pas testé :$)
0
Linkman Messages postés 113 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 24 juin 2009
20 nov. 2006 à 15:37
Tu peux aussi utiliser les expressions régulières et preg_replace ( http://us3.php.net/manual/fr/function.preg-replace.php )

T'auras moins de code et ça sera plus pro
0
JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
21 nov. 2006 à 21:26
Jamais fait d'exopression régulières et pas trouvé de tuto qui me convienne :$... je vais me cacher ok...
0
Linkman Messages postés 113 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 24 juin 2009
22 nov. 2006 à 13:15
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nisaloncaje Messages postés 154 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 septembre 2008
26 nov. 2006 à 15:57
salut

je viens d'essayer le script de julsoft mais ca marche pas :(

déjà je pense qu'il manque un strpos après $pos= mais ca ne change rien

quant aux expressions régulières, a vrai dire, j'ai pas trop pigé le truc :(
0
nisaloncaje Messages postés 154 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 septembre 2008
26 nov. 2006 à 16:06
parce que surtout le caractère de fin à isoler est le crochet, et le script php interprête cela comme une liste de caractères autorisés
0
Rejoignez-nous