如何检查SimpleHTMLDom元素是否不存在

时间:2012-08-22 10:32:55

标签: php if-statement simple-html-dom

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

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

4 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分: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 */ }

答案 2 :(得分:0)

foreach (char ch in name)
{
    int decNumber = ch;
    Console.WriteLine(decNumber);                
    for (int i = 0; i < name.Length; i++)
    {
        Console.WriteLine("Enter a number:");
        int a = Convert.ToInt32(Console.ReadLine());
        var result = Convert.ToString(a, 2);
        Console.WriteLine(result);
    }             
}

对我来说有效

答案 3 :(得分:-1)

对我而言上述解决方案都没有工作,最后我像这样检查了

$html = str_get_html($html);

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