Problème avec Expressions régulières preg_match

Problème avec Expressions régulières preg_match - PHP - Programmation

Marsh Posté le 28-02-2007 à 17:19:13    

Bonjour,
 
Voici mon problème, j'aimerai récupérer tout ce qui est entre 2 balises xml exemple :
 
blablablabla
<section id='day'><comment>
# Date - Pages - Hits - Bandwidth - Visits
</comment><nu>
BEGIN_DAY</nu><recnb>03</recnb><table>
<tr><td>20070201</td><td>10001</td><td>100001</td><td>1000001</td><td>1001</td></tr>
<tr><td>20070202</td><td>10002</td><td>100002</td><td>1000002</td><td>1002</td></tr>
<tr><td>20070203</td><td>10003</td><td>100003</td><td>1000003</td><td>1003</td></tr>
</table><nu>END_DAY
</nu></section>
blablablalbla
 
récupérer ce qui est entre <section id='day'> et </section>
 
Donc je pensais à un :

Code :
  1. preg_match("/<section id='day'>(.*)<\/section>/i", $contenu, $tablo);


Le problème c'est que ca marche que si ce qui est entre <section> et </section> n'a pas de retour à la ligne...
 
Ca doit être un truc tout con mais là j'vois po  :heink:  
 
Une idée ?
 
Merci :)

Reply

Marsh Posté le 28-02-2007 à 17:19:13   

Reply

Marsh Posté le 28-02-2007 à 17:22:12    

/Uis a la fin de ton msque de recherche

Reply

Marsh Posté le 28-02-2007 à 17:25:07    

Ca à l'air de marcher, merci :)
Connais tu un site qui explique les arguments ? La doc PHP est mal faite pour ca :/

Message cité 1 fois
Message édité par zecoke le 28-02-2007 à 17:27:31
Reply

Marsh Posté le 28-02-2007 à 17:27:32    

Un tuto : http://www.lumadis.be/regex/tuto_pcre.php
La section option du tuto : http://www.lumadis.be/regex/tuto_pcre.php#options
et son testeur en ligne tres pratique : http://www.lumadis.be/regex/test_regex.php?lang=fr


Message édité par afbilou le 28-02-2007 à 17:29:54
Reply

Marsh Posté le 28-02-2007 à 17:32:43    

zecoke a écrit :

Connais tu un site qui explique les arguments ? La doc PHP est mal faite pour ca :/


 :pfff:  :pfff:  :pfff:
http://fr.php.net/manual/fr/refere [...] ifiers.php

Citation :

Les options de PCRE sont listées ci-dessous. Les noms entre parenthèses sont les noms internes à PCRE. Les espaces et les caractères de nouvelles lignes sont ignorés dans les modifieurs, les autres caractères causent des erreurs.
...
s (PCRE_DOTALL)
    Avec cette option, le méta-caractère point (.) remplace n'importe quel caractère, y compris les nouvelles lignes. Sans cette option, le caractère point ne remplace pas les nouvelles lignes. Cette option est équivalente à l'option Perl /s. Une classe de caractères négative telle que [^a] acceptera toujours les caractères de nouvelles lignes, indépendamment de cette option.
...
U (PCRE_UNGREEDY)
    Cette option inverse la tendance à la gourmandise des expressions rationnelles. Vous pouvez aussi inverser cette tendance au coup par coup avec un ?. De même, si cette option est activée, le ? rendra gourmand une séquence. Cette option n'est pas compatible avec Perl. Elle peut aussi être mise dans le masque avec l'option ?U dans le pattern ou par un point d'interrogation avant le quantifieur (.e.g. .*?).
...

 



Message édité par anapajari le 28-02-2007 à 17:33:39
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed