[php] Remplacement de chaine - bizarre !...

Résolu
Mnu Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   -  
Mnu Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voilà j'ai un petit soucis... Je voudrais savoir comment faire pour remplacer une occurence comme:

[url=http://mon_url_qui_change.com]

par:

[url=http://mon_url_qui_change.com:texte]

Dans un texte...

En fait, je peux pas utiliser de str_replace parce que l'url change dans le texte... Il me faudrait une solution qui me permette de remplacer les chaînes de la forme [url= ... ] par [url= ... :texte], sans agir sur les pointillés, en fait...

Y'a-t-il une solution pour ça ? avec preg_replace ?

Si quelqu'un avait une solution, je lui en serait très reconnaissant !
A voir également:

5 réponses

Blue project
 
en concatenant ^^ url=http...com.":texte"
0
Mnu Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   16
 
Merci pour ta réponse, mais ce n'est pas ce que je recherche...

Je vois bien comment concaténer, c'est pas le problème...

En fait, la chaine sur laquelle je dois intervenir change... Du coup, je ne peux pas simplement faire un str_replace("[url= ... ]", "[url= ... :texte]",$texte)...

Il faut que je trouve un moyen de trouver dans $texte n'importe quelle chaine sous la forme [url=chaine_quelconque] pour la remplacer par [url=chaine_quelconque:suffixe]. Et je ne sais pas si on peut utiliser un preg_replace pour ça.

Et c'est là que je coince...

0
le père
 
Bonjour,

$chn="[url:salut]";
$texte=":coucou";
$chn=substr($chn,0,strlen($chn)-1).$texte.substr($chn,-1);
echo $chn;
0
Mnu Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   16
 
Merci, j'y avais pas pensé... Je vais regarder ce que je peux faire avec ça !
0

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

Posez votre question
Mnu Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   16
 
Voilà, j'ai trouvé...

 
    preg_match_all("/\[url=([^\]]*)\]/",$text,$out);
    foreach ($out[0] as $value)
   {
       $text = str_replace($value,substr($value,0,strlen($value)-1).":suffixe".substr($value,-1),$text);
   }



Ceci remplace [url=une_url_quelconque] par [url=une_url_quelconque:suffixe] dans une chaîne $text


Merci pour votre aide...
0