REGEXE: appliquer une fonction sur $1

Résolu
franco_se Messages postés 151 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 30 juillet 2018 - 11 déc. 2007 à 20:01
franco_se Messages postés 151 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 30 juillet 2018 - 11 déc. 2007 à 23:24
bonjour

voila, j'ai un petit code avec un regex qui modifie une chaine de caractère :


# $chaine = "exemple  [id=1] de  /id chaine de  [id=2] caractere /id";
# $chaine_modifiee = preg_replace("/\[id=\'(.+?)'\](.+?)\[\/id]/", "$2", $chaine);

mais je voudrais appliquer une fonction à $1......
le probleme est que si je fais
# "$2"
ça marche pas, et si je fais
# "$2"
la fonction s'applique sur la chaine de catactere '$1' et non sur la variable $1 .....

et comme il y a plusieurs balises [id] dans les $chaine , je ne peux pas utiliser de explode pour recuperer la valeur de [id] ......

donc, comment faire pour appliquer cette fonction() sur la variable $1 de preg_replace ? ......

merci

4 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
11 déc. 2007 à 20:06
Hello, tu ne peux pas. Autant le faire dans la fonction elle-même.
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
11 déc. 2007 à 21:50
3
franco_se Messages postés 151 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 30 juillet 2018 2
11 déc. 2007 à 20:23
je me disais aussi, c'était trop beau imaginer que ce fusse possible ............

bon, je vais essayer de trouver un moyen de me demerder ...

merci malalam
0
franco_se Messages postés 151 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 30 juillet 2018 2
11 déc. 2007 à 23:24
YES!!! ça marche !!!! merci neigedhiver
0
Rejoignez-nous