RV2931
Messages postés185Date d'inscriptionsamedi 21 mai 2005StatutMembreDernière intervention16 juillet 2016
-
25 oct. 2006 à 17:41
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 2009
-
27 oct. 2006 à 15:30
bonjour,
ça fait quelques heures que je cherche, je trouve pas comment faire,
je voudrais extraire du texte d'une page html, ce texte est compris entre 2 balises <tr ...> et </tr>
je n'arrive pas et je me pause une question en plus,
les expressions régulières de ce type sont faites pour fonctionner sur une ligne, donc si il y a des retours à la ligne, et bien comment ça se passe.
parce que si je veux extraire un bloc de données contenant des retours à la ligne, des vrais "\n", pas des
, et ben il faut tester sur plusieurs ligne, mais justement, je crois que ça le fait pas les regex.
Je pense qu'il faudrait déjà linéariser tout sur une seule ligne, non ???
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 27 oct. 2006 à 15:24
Hi,
PHP gère bien le multiligne dans ses regex, aucun souci.
Donc tu passes dans une seule variable chaine ce que tu veux traiter, en effet, mais ensuite plus aucun souci PHP se débrouille.
Tu peux utiliser un pattern du type :
"!<tr( [^>]+)?>(.*)</tr>!Ui"
L'option "U" va chercher à raccourcir au maximum le matching, ca rend le "*" non gourmand, pour éviter de chopper plusieurs blocs <tr>...</tr> dans ton retour.
L'option "i" c'est juste pour que ce soit insensible a la casse (possibilité d'avoir </TR> par exemple)