我试图从表中提取一个特定的链接,但没有显示任何内容。这是td中的第三个链接。我以为这会起作用,但没有。
这里的代码:
<?php
$site = 'site';
$html = file_get_html($site);
foreach($html->find('td a', 3) as $element)
echo $element->href;
?>
这是HTML
<tr class="evenrow team-600-359">
<td>
Aug 17
</td>
<td>
FT
</td>
<td align="right">
<a href="link1">Arsenal</a>
</td>
<td align="center">
<a href="link2">1-3</a>
</td>
<td><a href="link3">Aston Villa</a></td>
<td style="text-align:right;">60,003</td>
</td>
<td>
Premier League
</td>
</tr>
您的HTML无效。这可能是原因。
检查TD
与60,003
值的双重闭合。
只需使用本机DomDocument
:
$str = <<<STR
<tr class="evenrow team-600-359">
<td>
Aug 17
</td>
<td>
FT
</td>
<td align="right">
<a href="link1">Arsenal</a>
</td>
<td align="center">
<a href="link2">1-3</a>
</td>
<td><a href="link3">Aston Villa</a></td>
<td style="text-align:right;">60,003</td>
</td>
<td>
Premier League
</td>
</tr>
STR;
$dom = new DOMDocument();
@$dom->loadHTML($str);
$elements = $dom->getElementsByTagName('td');
echo '<pre>' . print_r($dom->saveXML($elements->item(2)), true) . '</pre>';
输出
<td align="right">
<a href="link1">Arsenal</a>
</td>