2011-12-10 1 views
0

J'essaie de récupérer des informations à partir d'un site Web en utilisant PHP Simple HTML Dom Parser. Dans le site il ya beaucoup de tables avec la classe "forumborder2" et à l'intérieur je veux obtenir des informations. Dans l'exemple suivant, je veux la source de l'image.PHP - Simple HTML Dom Parser

<table class="forumborder2" width=100% cellspacing=0 cellpadding=0 border=0 align=center> 
     <tr> 
      <td class="titleoverallheader2" background="modules/Forums/templates/chunkstyle/imagesnew/forumtop.jpg" style="border-top:0px; border-left:0px; border-right:0px;" width="100%" colspan=7 Align=left> 
       <b>Supernatural </b>(2005)&nbsp;&nbsp; - &nbsp;&nbsp;Enviada por: <b>AlJoSi</b>&nbsp;&nbsp; em 6 de Dezembro, 2011 (22:35:11) 
      </td> 
     </tr> 
     <tr height=25> 
      <td class="colour12" align=right width=100> 
       <b>Idioma:</b> 
      </td> 
      <td width=110 class="colour22"> 
       <img src="modules/Requests/images/fPortugal.png" width=18 height=12 border=0 alt='' title=''> 
      </td> 
     </tr> </table> 

j'ai fait ce qui suit:

foreach($html->find('table[class="forumborder2"]')as $tr){ 
    echo $tr->children(1)->children(1)->src; } 

Cela donne toujours l'erreur: "Essayer d'obtenir la propriété de non-objet". Si je vais seulement à $tr->children(1)->children(1) je peux obtenir <img src="modules/Requests/images/fPortugal.png" width=18 height=12 border=0 alt='' title=''> alors pourquoi je ne peux pas accéder à l'attribut src.

+0

Qu'est-ce que "simple analyseur dom HTML"? Et ** quelle erreur ** ??? – Jon

+0

@Jon, [Parseur PHP Simple HTML DOM] (http://simplehtmldom.sourceforge.net/). Changé le message avec l'erreur aussi. – Barata

Répondre

4

ne pouvez-vous pas simplement saisir toutes les images en utilisant le HTML Dom Parser? Je ne sais pas si vous ne le saisissez qu'à partir d'une certaine section du code HTML, mais si vous l'êtes, vous pouvez exécuter une regex sur la source de l'image pour obtenir celles que vous recherchez; voici un extrait de code qui pourrait aider:

// Create DOM from URL or file 
$html = file_get_html('http://www.google.com/'); 

// Find all images 
foreach($html->find('img') as $element) 
    echo $element->src . '<br>'; 

// Find all links 
foreach($html->find('a') as $element) 
    echo $element->href . '<br>'; 

J'espère que cela aide

+0

Ce serait ma deuxième option. Je préférerais faire un peu de traitement en parcourant chaque table "forumborder2" et pas plus tard en itérant dans le "tableau d'images". – Barata