在PHP中调用非对象的成员函数find()?

时间:2013-03-14 17:02:30

标签: php dom find fatal-error

我使用dom()来解析HTML中的内容。基本上在标记<img class="logo">内。

我正在使用$this->dom->find('img[class=logo]')来获取值。

但是在执行此操作时,有时我遇到的HTML没有上面指定的标记。

在这种情况下,它会抛出错误 - Fatal error: call to member function find() on non-object

我不希望发生这种错误。相反,如果无法找到指定的标签,我想跳过。

我也尝试过try-catch来跳过错误但是效果不好。

这是我的代码,

try {
    foreach ($this->dom->find('img[class=logo]') as $result) {
        //echo $result->src."\n";
        $li_img = $result->src;
    }
    if(!isset($li_img))
        return;
    else
        return $li_img;
} catch(Exception $e) {
    return;
}

如果dom无法找到代码,我想跳过。它现在正在抛出错误。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

错误表示$this->dom不是对象,因此您无法使用$this->dom->find()