2013-12-15 2 views
0

Я пытаюсь извлечь определенную ссылку из таблицы, но ничего не отображаю. Это 3-я ссылка в td. Я думал, что это сработает, но нет.извлечение ссылки в html-таблице php с использованием simple_html_dom

здесь код:

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

Link определенно работает – 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>'; 

ВЫВОД

<td align="right"> 
    <a href="link1">Arsenal</a> 
</td> 
Смежные вопросы