2013-12-15 3 views
0

테이블에서 특정 링크를 추출하려고하는데 아무 것도 표시하지 않습니다. 그것은 td의 세 번째 링크입니다. 나는 이것이 효과가있을 것이라고 생각했지만하지 않았다. 여기HTML 테이블의 링크를 simple_html_dom을 사용하여 PHP로 추출

코드 : 여기

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

답변

0

되는 HTML을합니다. 그것은 원인이 될 수 있습니다.

TD의 이중 닫기를 60,003 값으로 확인하십시오.

+0

링크 확실히 – Nic

+0

작동하지만 잘못된 HTML이있는 경우 파서가 제대로 작동 할 수 있습니다. – avall

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>'; 

OUTPUT

<td align="right"> 
    <a href="link1">Arsenal</a> 
</td> 
관련 문제