我正在使用这个库(PHP Simple HTML DOM解析器)来解析链接,这里是代码:
function getSemanticRelevantKeywords($keyword){
$results = array();
$html = file_get_html("http://www.semager.de/api/keyword.php?q=". urlencode($keyword) ."&lang=de&out=html&count=2&threshold=");
foreach($html->find('span') as $e){
$results[] = $e->plaintext;
}
return $results;
}
Run Code Online (Sandbox Code Playgroud)
但是当我输出结果时,我收到此错误:
致命错误:在第25行的/var/www/vhosts/efamous.de/subdomains/sandbox/httpdocs/getNewTrusts.php中调用非对象上的成员函数find()
(第25行是foreach循环),奇怪的是它输出所有内容(至少看似)但是我仍然得到了这个错误并且无法弄清楚原因.
小智 22
出现此错误的原因是:如果来自url的响应大小大于600000,则简单的HTML DOM不会返回该对象.
您可以通过更改simple_html_dom.php文件来使其无效.strlen($contents) > MAX_FILE_SIZE从功能的if条件中删除file_get_html.
这将解决您的问题.
小智 7
你只需要增加CONSTANT MAX_FILE_SIZE文件simple_html_dom.php.
例如:
define('MAX_FILE_SIZE', 999999999999999);
Run Code Online (Sandbox Code Playgroud)