我正在尝试使用PHP Simple HTML Dom Parser从网站检索一些信息。在网站上有许多表“forumborder2”,在其中我想获得一些信息。在下一个例子中,我想要图像源。
<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) - Enviada por: <b>AlJoSi</b> 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>
我做了以下事情:
foreach($html->find('table[class="forumborder2"]')as $tr){
echo $tr->children(1)->children(1)->src; }
这总是给出错误:“试图获取非对象的属性”。如果我只去$tr->children(1)->children(1)
我可以获得<img src="modules/Requests/images/fPortugal.png" width=18 height=12 border=0 alt='' title=''>
,那么为什么我无法访问src属性。
答案 0 :(得分:4)
你不能只使用HTML Dom Parser获取所有图像吗?我不确定你是否只是从HTML的某个部分抓取它,但如果你是,你可以在图像源上运行一个正则表达式来获取你正在寻找的那个;这是一个可能有用的代码片段:
// 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>';
我希望这有帮助