我有这个代码用于从表格中抓取团队名称
$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?
作为另一个变量。
答案 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