Boucle dans remplacement regex [RESOLU] - PHP - Programmation
Marsh Posté le 05-09-2005 à 16:52:53
Extrait de la doc de PHP :
Citation : preg_grep retourne un tableau qui contient les éléments de input qui satisfont le masque pattern . |
http://www.nexen.net/docs/php/anno [...] g-grep.php
Il me semblait qu'il y avait une fonction permettant de demander le résultat du remplacement à une fonction, mais je dois confondre avec une autre vu que je ne la retrouve pas.
Marsh Posté le 05-09-2005 à 17:10:46
utilise l'option de recherche e ( voir doc http://php.net/manual/fr/reference [...] ifiers.php )
de cette façon tu pourras utiliser une fonction pour remplacer $1
(attention cette option a été la cause de plusieurs failles de sécurité dans phpbb)
Marsh Posté le 05-09-2005 à 17:21:35
Si je pige bien cette option, il fait le remplacement puis exécute le résultat comme du code php. Si c'est ça, c'est super dangereux en effet.
J'espéres me tromper mais c'est ce que j'ai compris de leur explication.
Marsh Posté le 05-09-2005 à 17:35:22
dangereux si mal utilisé, mais vraiment pratique dans certains cas.
Marsh Posté le 05-09-2005 à 17:46:36
yopi, merci pour les idées!
j'ai trouvé une fonction qui convient sans devoir passer par l'option de recherche e
c'est la fonction preg_replace_callback()... elle exécute une fonction php sur les paramètres de la recherche à chaque remplacement...
le code devient:
Code :
|
et voili, c'est exactement ce qu'il fallait
encore merci pour votre aide!!
Marsh Posté le 05-09-2005 à 16:41:44
Hello, j'aurais besoin d'aide au sujet d'une fonction de remplacement d'un motif d'une expression régulière...
en fait, mon but est de faire une boucle me permettant de récupérer les variables $1,$2... à chaque fois que le remplacement est fait.
exemple: j'ai une regex "!gnagna([0-9]*)paf! bon, à chaque fois que je veux remplacer mon motif donné par la regex, je veux utiliser le $1 (donc le nombre désigné par [0-9]*) afin de définir par quoi je vais remplacer le motif en passant par une fonction
ça donnerait un truc du genre:
j'ai une idée de la méthode mais je ne sais pas quelles fonctions utiliser
merci de m'aider!!
Message édité par Psykolio le 05-09-2005 à 21:53:43