6

SimpleHtmldom 可用于提取具有 class 的第一个元素的内容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

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

4

4 回答 4

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

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

于 2012-08-22T10:36:34.120 回答
1

根据SimpleHtmlDOM Api 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 */ }
于 2012-08-22T10:43:21.040 回答
0
$avalable = ($element->find('span.sold-out-text', 0)) ? 1 : 0;

它对我有用

于 2015-08-09T16:30:43.063 回答
-1

对我来说,上述解决方案都没有奏效,最后我像这样检查

$html = str_get_html($html);

if($html){
    //html found
}else{
    //html not found
}
于 2016-08-11T11:25:33.393 回答