我有一个简单的刮刀,使用DomDocument
获取HTML,然后显示结果。
foreach ($dom->getElementsByTagName('li') as $li) {
$key = $li->getElementsByTagName('span')->item(0)->textContent;
$value = $li->getElementsByTagName('strong')->item(0)->textContent;
$results[trim($key)] = trim($value);
}
但是,如果脚本无法检索HTML,或输入的选项错误,则返回
Trying to get property of non-object
$key = $li->getElementsByTagName('span')->item(0)->textContent;
如何检查它是否存在?
我试图将$key
行设置为变量并检查长度是否大于0,但即使变量失败也是如此。
答案 0 :(得分:3)
检查item
方法的返回值:
$span = $li->getElementsByTagName('span')->item(0);
if (!$span) {
continue;
}
实际上你应该总是检查返回值。