1

我正在使用 PHP Simple HTML DOM Parser 从 10.000 多个页面中获取电子邮件地址。

require_once('simple_html_dom.php'); 
$html = file_get_html('http://www.myurl');
$email = $html->find('dl', 5)->children(3);

有时会出现跟随错误。可能是因为某些页面没有标签:

Fatal error: Call to a member function children() on a non-object

如果页面不包含我正在寻找的信息而不中断完整的脚本,如何避免此错误?

4

2 回答 2

2

如果存在不确定性,请不要链接您的方法。分配$email = $html->find('dl', 5)- 然后测试是否有任何孩子,可能有hasChildNodes

于 2013-07-05T21:02:41.713 回答
2

$email您可以通过使用该函数来测试是否是一个对象is_object(),例如

$email = $html->find('dl', 5);
if(is_object($email) === true)
{
    print_r($email->children(3));
}
else continue;

这可能比使用外部库测试儿童更快,因为它使用 PHP 引擎中已经存在的函数。

于 2013-07-05T21:57:26.200 回答