我正在使用dom()
来解析HTML中的内容。基本上在标签<img class="logo">
。调用成员函数find()在PHP中的非对象?
我使用$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
是无法找到的标签。现在正在抛出错误。
任何帮助,将不胜感激。
$ this-> dom'定义在哪里?那是什么导致你的错误。 – nickb 2013-03-14 17:03:45
这个'SimpleHTML','Zend_Dom_Query'等是什么dom接口? – prodigitalson 2013-03-14 17:05:25
$ this-> dom = @file_get_html($ url);这是dom的定义。它不会抛出所有情况下的错误。只有极少数情况下,它无法从file_get_html前面的@处找到 @nickb – user1518659 2013-03-14 17:06:13