我是php的新手 我得到了
致命错误:在非对象错误
上调用成员函数find()
我包含了simple_html_dom.php
<?php
include 'simple_html_dom.php';
$htm = file_get_html('http://www.thatscricket.com');
$es = $htm->find('div[class=score_card_display_below_links]');
$value = $es[0]->href;
$link = "http://www.thatscricket.com/$value";
$html = file_get_html('$link');
$scr = $html->find('span');
echo "$scr";
?>
答案 0 :(得分:2)
$html = file_get_html('$link');
这将尝试获取文字字符串'$link'
(变量不会在单引号字符串中展开)。这意味着$html
将为null或false。
由于$html
不是一个对象,因此您无法在其上调用方法。
使用:
$html = file_get_html($link);
您还应该始终检查由于失败而可能为false或null的返回类型,以便您可以正常失败。
答案 1 :(得分:0)
$htm = file_get_html('http://www.thatscricket.com');
检查var_dump($htm);
我认为它会返回bool(false)
$html = file_get_html('$link');
应该是
$html = file_get_html($link);
答案 2 :(得分:0)
首先检查var_dump($htm)
,它必须返回null
答案 3 :(得分:0)
我也遇到了同样的错误,我发现它的解决方案来自php计数功能,如此
if( $htm ){
$score_card_count = count($htm->find('div[class=score_card_display_below_links]'));
$score_card_count = trim($score_card_count);
if( $score_card_count > 0 )
{
$es = $htm->find('div[class=score_card_display_below_links]');
$value = $es[0]->href;
}
}
我希望通过这种方法可以解决我的错误。