Regex : Variable et incrementation dans le replace [Resolu] - PHP - Programmation
Marsh Posté le 02-10-2011 à 07:10:45
Tu as besoin d'une fonction de callback.
Il te faut donc utiliser preg_replace_callback()
http://php.net/manual/en/function. [...] llback.php
Marsh Posté le 02-10-2011 à 18:28:37
Tout d'abord merci pour la réponse, ensuite je m'excuse mais je ne comprend pas pourquoi je dois utiliser cette fonction. Cela revient au même non ? au final de toute manière mon expression régulière n'est pas bonne il faut que je vire de mes résultats toutes parenthèses avec (année-année). Je n'ai pas encore eu le temps de chercher plus, je m'y mettrais ce soir.
Marsh Posté le 03-10-2011 à 13:25:39
Je répondais juste à la problématique du preg_replace avec un remplacement dynamique, pour que la prochaine fois tu ne sèches plus dessus.
C'est le genre de truc qu'on rencontre peu fréquemment, mais qui peut te sauver la vie.
Marsh Posté le 03-10-2011 à 17:59:34
D'accord merci je comprend mieux.
Edit : bon je suis plus ou moins arrivé a faire ce que je voulais avec les regex, même si s'pas encore le top.
Marsh Posté le 01-10-2011 à 14:30:30
Bonjour tout le monde !
je planche sur un petit problème depuis hier soir, je m'explique : avec ma regex, je cherche a conserver uniquement les caractères se trouvant entre 2 parenthèse, et les utiliser dans une requêtes sql. Jusque la aucun problème, la ou ça se complique c'est au remplacement. En effet, j'aimerais qu'a la suite des caractères entre parenthèses se "greffe" une variable qui s’incrémente après chaque affichage de caractère entre parenthèse.
Concrètement :
le problème c'est que je n'ai pas d’incrémentation... le résultat est celui ci :
J'ai essayé beaucoup de truc comme mettre ma variable dans la chaine de caractère, et ça marche, mais le but de ce script est de pouvoir traiter des données massivement ce qui n'est pas possible si je dois copier/coller ma variable moi même à chaque ligne. La chaine de caractère vient de wikipedia, ce sont les titres des épisodes de la serie the big bang theory dans cet exemple. J'aimerais pouvoir traiter des centaines de lignes d'un coup de cette manière.
En gros c'est un script de fainéant mais bon en même temps vla le boulot si je fais pas ça.
Je vous remercie d'avance pou vos lumières.
EDIT : J'ai trouvé ma solution, je travaille dessus et je poste le résultat.
Bon j'ai trouvé ma solution, j'ai utilisé la boucle foreach que je ne connaissais pas. Maintenant je galère avec mon expression régulière .
Voila donc ce que ca donne maintenant :
avec mon expression régulière, la boucle affiche "(2005-2006)"
ça fait bientôt 1h que je cherche mais j'y arrive pas :s.
Je pensais qu'avec ça ça marcherait mais non :
j'ai essayé plein de truc mais au final ça m'affiche plus rien.
je vous remercie d'avance.
Message édité par spaik21 le 03-10-2011 à 22:38:15