简体   繁体   English

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

[英]extracting a link in a html table php using simple_html_dom

I'm trying to extract a specific link from a table but is not displaying anything. 我正在尝试从表中提取特定链接,但未显示任何内容。 It's the 3rd link in the td. 这是td中的第三个链接。 I thought this would work but doesn't. 我以为这样可以,但是不行。

here the code: 这里的代码:

<?php

$site = 'site';
$html = file_get_html($site);

foreach($html->find('td a', 3) as $element) 
echo $element->href;

?>

Here is the HTML 这是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>

You have invalid HTML. 您的HTML无效。 It can be the cause. 这可能是原因。

Check double closing of TD with 60,003 value. 检查TD60,003双关。

Just use native DomDocument : 只需使用本机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>';

OUTPUT 输出值

<td align="right">
  <a href="link1">Arsenal</a>
</td>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM