使用simple_html_dom在html表php中提取链接

时间:2013-12-15 22:30:46

标签: php foreach simple-html-dom

我正在尝试从表中提取特定链接但不显示任何内容。这是td中的第3个链接。我认为这会起作用但不会。

这里是代码:

<?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>

2 个答案:

答案 0 :(得分:0)

您的HTML无效。这可能是原因。

使用TD值检查60,003的双重结束。

答案 1 :(得分:0)

只需使用原生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>