[PHP] remplacement dynamique d'une chaine [Résolu/Fermé]

Signaler
Messages postés
2
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
21 mars 2007
-
Messages postés
2
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
21 mars 2007
-
Bonjour,

Je dispose d'un texte parsemé de chaines de caractères au format:
##chaine1|chaine2|chaine3##

Je souhaiterais remplacer chaque occurence dynamiquement en fonction des valeurs de chaine1, chaine2 et chaine3, par exemple par:
chaine1.php?chaine2=chaine3

A l'aide de eregi_replace et d'une expression régulière, j'arrive à détecter les occurrences pour les remplacer par une chaine prédéterminée, mais comment faire pour les remplacer par une chaine générée dynamiquement en fonction des valeurs de mes chaine1, chaine2 et chaine3? Autrement dit, comment récupérer les valeurs de chaine1, chaine2 et chaine3 trouvées avec mon expression régulière?

Il doit y avoir moyen de se débrouiller en parcourant le texte avec des strpos et en bouclant, mais j'aimerais si possible éviter toute récursivité...

1 réponse

Messages postés
2
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
21 mars 2007

Problème résolu avec la fonction preg_replace_callback:


function parsetexte($pattern){
return "$pattern[1].php?pattern[2]=pattern[3]";
}

$texte="##chaine1|chaine2|chaine3##";
echo preg_replace_callback("/##(.+?)\|(.+?)\|(.+?)##/","parsetexte",$texte);


On obtient:
chaine1.php?chaine2=chaine3