从php表中获取第三个超文本引用


Getting the 3rd hyper text reference from a table php

我试图从表中提取一个特定的链接,但没有显示任何内容。这是td中的第三个链接。我以为这会起作用,但没有。

这里是代码:

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

这是一个基于0的索引,要获得第三个结果,必须指定索引2。。。

此外,当您指定索引时,find()只返回一个结果,因此不需要使用循环!!

以下是基于您上面的html片段的工作代码:

// includes Simple HTML DOM Parser
include "simple_html_dom.php";
$text = '<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>';

//Create a DOM object
$html = new simple_html_dom();
// Load HTML from a string
$html->load($text);

// Find the 3rd anchor
$anchor = $html->find('td a', 2);
echo $anchor->href;

输出:

link3

Working DEMO