使用简单的HTML DOM提取“a”URL

时间:2013-04-15 21:06:57

标签: php simple-html-dom

我有这个代码用于从表格中抓取团队名称

$url = 'http://fantasy.premierleague.com/my-leagues/303/standings/';
$html = @file_get_html($url);
//Cut out the table
$FullTable = $html->find('table[class=ismStandingsTable]',0);
//get the text from the 3rd cell in the row 
$teamname = $FullTable->find('td',2)->innertext;
echo $teamname;

这很有用..并且给出了这个输出....

<a href="/entry/110291/event-history/33/">Why Always Me?</a>

但是当我添加这些行时..

$teamdetails = $teamname->find('a')->href;
echo $teamdetails;

我的输出完全空白。

知道为什么吗?我想将/entry/110291/event-history/33/作为一个变量,将Why Always Me?作为另一个变量。

4 个答案:

答案 0 :(得分:1)

$teamdetails = $teamname->find('a')->href;
               ^^^^^^^^^---- never defined in your code

我也看不出你的“工作”代码是如何工作的。你也没有在那里定义$teamname,所以你永远不会得到的是null / undefined变量的输出,它是......没有输出。

答案 1 :(得分:1)

而是这样做:

$tdhtml = DOMDocument::loadHTML($teamdetails);
$link = $tdhtml->getElementsByTagName('a');

$url = $link->item(0)->attributes->getNamedItem('href')->nodeValue;

答案 2 :(得分:0)

Marc B是对的,我知道你不必初始化一个变量,但他说你正试图访问所述变量的属性:

$teamdetails = $teamname->find('a')->href;
           ^^^^^^^^^---- never defined in your code

这基本上是:

$teamname = null;
$teamname->find('a')->href;

答案 3 :(得分:0)

您的示例中的问题是$ teamname是一个字符串,您将其视为simple_html_dom_node