我需要创建一个基于url返回html的函数。
function start()
{
$url = "http://dostuff.com";
$site = new \DOMDocument();
$site->loadHTML(file_get_contents($url));
//do stuff with it
$listview = $site->getElementById('colLeft');
var_dump($this->getValuesOfAttribute($listview,'a','href'));
}
这实际上有效,但是我需要在其他几个函数中使用这个功能。所以我也可以用自己的方法获取内容。
public function start()
{
$site = $this->getHTMLByURL("http://dostuff.com");
//do stuff with it
$listview = $site->getElementById('colLeft');
var_dump($this->getValuesOfAttribute($listview,'a','href'));
}
public function getHTMLByURL($url)
{
$site = new \DOMDocument();
return $site->loadHTML(file_get_contents($url));
}
致命错误:在a上调用成员函数getElementById() 非对象 [文件路径] 在非对象上调用成员函数getElementById()
为什么' $ site'一个非对象?它与第一个函数的值是否相同?
答案 0 :(得分:3)
你的函数getHTMLByUrl
没有返回你的想法。
public function getHTMLByURL($url)
{
$site = new \DOMDocument();
return $site->loadHTML(file_get_contents($url));
}
返回loadHTML
调用的布尔结果,而不是对象。
请参阅here了解相关文档。
您需要做的是:
public function getHTMLByURL($url)
{
$site = new \DOMDocument();
$site->loadHTML(file_get_contents($url));
return $site;
}