如何检查是否SimpleHTMLDom元素不存在(How to check if a SimpleH

2019-06-27 05:58发布

SimpleHtmldom可以用来提取与类的第一个元素的内容description

$html = str_get_html($html);
$html->find('.description', 0)

但是,如果该类不存在,PHP会抛出一个错误

Trying to get property of non-object

我试过了

if(!isset($html->find('.description', 0))) {
    echo 'not set';
}

if(!empty($html->find('.description', 0))) {
    echo 'not set';
}

但两者给人的错误

Can't use method return value in write context

什么是检查是否存在元素的正确方法?

Answer 1:

if(($html->find('.description', 0))) {
    echo 'set';
}else{
    echo 'not set';
}

http://www.php.net/manual/en/control-structures.if.php



Answer 2:

按照SimpleHtmlDOM阿比 str_get_html($ HTML)需要字符串输入。 先用一个HTML验证检查,如果你的代码都已经格式化。

$htmlObj = str_get_html($html);
if (!is_object($htmlObj)) return; // catch errors 

// or wrap further code in 
if (is_object($htmlObj)) { /* doWork */ }


Answer 3:

$avalable = ($element->find('span.sold-out-text', 0)) ? 1 : 0;

这对我的作品



Answer 4:

对我来说没有上述溶液的工作,最后我检查这样的

$html = str_get_html($html);

if($html){
    //html found
}else{
    //html not found
}


文章来源: How to check if a SimpleHTMLDom element does not exist