How to check if a SimpleHTMLDom element does not exist

16,917

Solution 1

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

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

Solution 2

According to the SimpleHtmlDOM Api str_get_html($html) expects a string as input. First check with a html validator if your code is well formatted.

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

// or wrap further code in 
if (is_object($htmlObj)) { /* doWork */ }
Share:
16,917
Nyxynyx
Author by

Nyxynyx

Hello :) I have no formal education in programming :( And I need your help! :D These days its web development: Node.js Meteor.js Python PHP Laravel Javascript / jQuery d3.js MySQL PostgreSQL MongoDB PostGIS

Updated on June 14, 2022

Comments

  • Nyxynyx
    Nyxynyx almost 2 years

    SimpleHtmldom can be used to extract the contents of the first element with class description.

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

    However if this class does not exist, PHP will throw an error

    Trying to get property of non-object

    I tried

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

    and

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

    but both gives the error

    Can't use method return value in write context
    

    What is the proper way to check if the element exist?