SimpleHtmldom puede ser utilizado para extraer el contenido del primer elemento con la clase description.

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

Sin embargo, si este no existe ninguna clase, PHP va a tirar un error

Trying to get property of non-object

Traté de

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

y

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

pero tanto da el error

Can't use method return value in write context

Cuál es la forma correcta para comprobar si el elemento existe?

empty no operación directamente en el valor. $html->find() devuelve una matriz vacía si el elemento no se encontró. Así que la solución ofrecida por la Muerte debe ser válida.
FYI: blog.futtta.ser/2012/05/31/…

OriginalEl autor Nyxynyx | 2012-08-22

4 Comentarios

  1. 2

    De acuerdo a la SimpleHtmlDOM Api str_get_html($html) espera una cadena como entrada. Primero consulte con un validador html si tu código está bien formateado.

    $htmlObj = str_get_html($html);
    if (!is_object($htmlObj)) return; //catch errors 
    
    //or wrap further code in 
    if (is_object($htmlObj)) { /* doWork */ }

    OriginalEl autor Chapter2

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

    Se obras para mí.

    OriginalEl autor user3519897

  3. -1

    para mí ninguna de las anteriores solución funcionó y finalmente he comprobado como este

    $html = str_get_html($html);
    
    if($html){
        //html found
    }else{
        //html not found
    }

    OriginalEl autor Prahlad

Dejar respuesta

Please enter your comment!
Please enter your name here