PHP尝试使用getElementsByTagName

时间:2016-11-28 12:26:56

标签: php dom domdocument

我有一个简单的刮刀,使用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,但即使变量失败也是如此。

1 个答案:

答案 0 :(得分:3)

检查item方法的返回值:

$span = $li->getElementsByTagName('span')->item(0);
if (!$span) {
  continue;
}

实际上你应该总是检查返回值。