|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() |
Bonjour
J'ai un problème avec une utilisation de la fonction preg_match_all(), je m'explique : j'ai un contenu avec des balises de type <!-- BEGIN xxxx --> et <!-- END xxxx --> je fais un premier preg_match_all qui fonctionne pour récupérer toutes mes balises BEGIN : preg_match_all('#<!-- BEGIN (.*?) -->#', self::$content, $temp); ça marche. j'en déduis les balises de fermeture en faisant un ereg_replace : ereg_replace('BEGIN', 'END', $value)); enfin j'essaie de récupérer le contenu de ces balises situé entre <!-- BEGIN xxxx --> et <!-- END xxxx --> exemple en dur avec : preg_match_all('#<!-- BEGIN LOOP -->(.*?)<!-- END LOOP -->#', self::$content, $buffer); et là ça marche pas ???? quelqu'un peut m'aider je pense que c'est dans mon expression régulière. Merci d'avance |
|
|
00
|
|
|
#2 | |
![]() ![]() Inscription : mai 2002 Messages : 860 ![]() |
Citation:
Je comprend pas bien ce que tu veux dire par "j'en déduis les balises de fermeture", toujours est-il que ton ereg_replace ne déduis rien du tout mais remplace 'BEGIN' par 'END' dans $value...Le problème est peut être là... Si ce que tu veux faire c'est trouver le 'END' à la fin de $value, utilise plutôt ereg()
__________________
Les règles du forum Cours et tutoriels php Développements web (CSS, (X)HTML,javascript, etc...) Cours et tutoriels MySQL Tutoriels Ajax Initiation à PHP-GTK1 Il n'est point de bonheur sans liberté, ni de liberté sans courage. Péricles |
|
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() |
désolé pour le post, je vais essayer de faire simple :
j'essaie de récupérer un contenu situé entre les balises suivantes : <!-- BEGIN LOOP --> et <!-- END LOOP --> voilà tout simplement et ma ligne preg_match_all('#<!-- BEGIN LOOP -->(.*?)<!-- END LOOP -->#', self::$content, $buffer); ne marche pas. Merci d'avance |
|
|
00
|
|
|
#4 |
|
Futur Membre du Club
![]() Inscription : janvier 2007 Messages : 30 ![]() |
au lieu de (.*?)
essaie avec ([^<]*) => tout ce qui n'est pas une balise ouvrante |
|
|
00
|
|
|
#5 | |
|
Membre du Club
![]() |
Citation:
|
|
|
|
00
|
|
|
#6 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Vous avez certainement besoin d'options, notamment s, pour que le métacaractère . inclue les sauts de ligne (ce n'est pas le cas par défaut) :
Code :
preg_match_all('#<!-- BEGIN ([[:alnum:]]+) -->(.*?)<!-- END \1 -->#s', self::$content, $buffer); |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() |
Respects Maestro, c'était ça, le petit s à la fin qui fait que le '.' prend en compte les sauts de ligne. Merci encore je n'aurais pas trouvé.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com