这段代码已经好几个月了。输出由几行组成,其中包含给定用户名的统计信息。从中获取html页面的网站未关闭,file_get_html
中页面的内容未发生变化。
突然(我检查过,没有人修改它)它停止了工作。这是相关部分:
[...]if ($FileAge > ($expiretime * 60) || 0 == filesize($cachename))
{
include_once('simple_html_dom.php');
$html = file_get_html('http://www.foo.com/search?what=user%3A'.YOUR_USER.'&search=Search');
var_dump($html); //TEST
$link = $html->find('.likeh4 lightGrey.', 0)->find('a', 0)->href; // Get the last activity link
[...]
错误日志显示:
[02-Feb-2013 17:02:19 Europe/Berlin] PHP Fatal error: Call to a member function find() on a non-object in /foo.php on line 22 (the line with $link).
var_dump($html)
提供bool(false)
我有一个类似的脚本,它解析来自另一个网站的html页面。它也停止了工作。
[...]include_once('simple_html_dom.php');
$html = file_get_html('http://my.flightmemory.com/'.FLIGHTMEMORY_USER);
$chilometri_table = $html->find('table', 2); [...]
我试图在我的网络服务器上保存其中一个html页面,但我没有收到这样的错误。 出于安全原因,我的主机是否禁用了某些php功能? (实际上,file_get_html来自simple_html_dom,而不是来自php本机函数)
任何提示? 感谢
答案 0 :(得分:1)
可能太迟了但是:
Simple_html_dom有一个常量来检查给定的html大小 - MAX_FILE_SIZE
。默认情况下它是600KB。对于大多数情况来说已经足够了,但如果你给定的html大于那个,它将失败并返回false
并导致致命错误。
答案 1 :(得分:0)
如果你试图[href] 我有同样的问题并修复它。 需要有效它是一个simple_html_dom_node
if(is_a($html->find('.likeh4 lightGrey. a', 0),'simple_html_dom_node' )
$link = $html->find('.likeh4 lightGrey. a', 0)->href;
OR
foreach ( $$html->find('.likeh4 lightGrey. a') as $links ) {
$link =$links->href;
}