[regexp] Extraire les lignes d'un tableau d'une page html

Extraire les lignes d'un tableau d'une page html [regexp] - PHP - Programmation

Marsh Posté le 07-09-2007 à 11:18:32    

Bonjour :hello:  
 
Vu le nombre de sujets qu'il y a sur les expressions régulières je vois que je ne suis pas le seul a avoir des soucis avec :sweat:  
 
Je souhaite extraire les lignes d'un tableau d'une page web qui comporte plusieurs tableaux. Pour cela le tableau qui m'interesse comporte un pattern spécial qui est facile a distinguer, donc pas de probleme de ce coté la. Mon soucis c'est que jusqu'a maintenant mon expression reguliere me recupere toutes les lignes d'un coup, sans les séparer. :(  
 
Exemple de la page:

Code :
  1. <html>
  2.   <head>
  3.      ...
  4.   </head>
  5.   <body>
  6.     <table>
  7.       <tr>
  8.         <td>...</td>
  9.       </tr>
  10.       <tr>
  11.         <td>...</td>
  12.       </tr>
  13.     </table>
  14.    
  15.     <!-- Tableau a extraire -->
  16.     <table>
  17.       <tr>
  18.         <td><a href="...">...</a></td>
  19.       </tr>
  20.       <tr>
  21.         <td><a href="...">...</a></td>
  22.       </tr>
  23.     </table>
  24.     <table>
  25.       <tr>
  26.         <td>...</td>
  27.       </tr>
  28.       <tr>
  29.         <td>...</td>
  30.       </tr>
  31.     </table>
  32.   </body>
  33. </html>


 
Mon expression régulière:

Code :
  1. eregi("<tr><a href=(.*)</tr>", $Page, $Result);


Avec ca il me récupère donc tout le contenu du 2eme tableau ET du 3eme tableau :sweat:  en même temps. Je voudrais donc exclure le 3eme tableau pour ne garder que le 2eme et surtout extraire ligne par ligne. Je pense qu'il doit falloir mettre dans la parenthèse capturant que je ne veux pas de "<tr>" pour eviter qu'il ne prenne plusieurs ligne en même temps mais je ne trouve pas comment faire?
 
Pourriez-vous me donner un coup de main?


Message édité par IvanleFou le 07-09-2007 à 11:40:02
Reply

Marsh Posté le 07-09-2007 à 11:18:32   

Reply

Marsh Posté le 07-09-2007 à 11:28:33    

Code :
  1. preg_match_all("/<tr><a href=(.*?)<\/tr>/si", $Page, $Result);

Reply

Marsh Posté le 07-09-2007 à 11:48:21    

anapajari a écrit :

Code :
  1. preg_match_all("/<tr><a href=(.*?)<\/tr>/si", $Page, $Result);



 
Excellent ca marche, merci beaucoup :jap:  
 
Je corrige juste le "<td>" que j'ai homis:

Code :
  1. preg_match_all("/<tr><td><a href=(.*?)<\/tr>/si", $Page, $Result);

Reply

Sujets relatifs:

Leave a Replay

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