Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检测元素是否存在_Php_Simple Html Dom - Fatal编程技术网

Php 如何检测元素是否存在

Php 如何检测元素是否存在,php,simple-html-dom,Php,Simple Html Dom,大家好,我正在使用简单的HTMLDOM获取数据 这是我的php代码,它从站点获取数据 包括('simple_html_dom.php') 这一行如果($html->find('h2.channel-title',0))在简单html dom的find函数中查找h2.channel-title会在h2.channer-title不存在时给我一个致命错误 在许多页面中,都有英文链接,因此我根据这些链接编写了代码,并在我的foreach循环中进行了进一步处理,它工作正常并获取了所有数据 但是 Fata

大家好,我正在使用简单的HTMLDOM获取数据

这是我的php代码,它从站点获取数据 包括('simple_html_dom.php')

这一行
如果($html->find('h2.channel-title',0))
在简单html dom的find函数中查找h2.channel-title会在h2.channer-title不存在时给我一个致命错误

在许多页面中,都有
英文链接
,因此我根据这些链接编写了代码,并在我的foreach循环中进行了进一步处理,它工作正常并获取了所有数据

但是

Fatal error: Call to a member function find() on a non-object in C:\xampp\apps\wordpress\htdocs\wp-content\plugins\autobot\engine\simple_html_dom.php on line 1113
英文链接
标记不存在时,它会给我一个错误

Fatal error: Call to a member function find() on a non-object in C:\xampp\apps\wordpress\htdocs\wp-content\plugins\autobot\engine\simple_html_dom.php on line 1113
请帮帮我我陷入困境需要帮助谢谢。如果h2.channel-title存在,请运行我的foreach代码,否则请运行另一个代码,但不要给出错误,请停止整个脚本:(

您正在使用哪个库?

这可能会有所帮助

$html = new simple_html_dom();
$html->load_file($this->main_url.$lin->link);

if($html) {
    $var = $html->find('h2.channel-title',0);

    if(isset($var)) {
        fetch data from tables
    } else{
        //do something
    }
}

简单的html dom和我有dump,但在某些页面中有h2元素,而在某些页面中没有元素,因此如何检测它?我认为$html不是对象,因此方法“find”无法调用。确定原因是页面中没有h2.channel-title。可能的解析错误?伙计们,请帮助我如何做到这一点,谢谢。这不是真的发生了,你的代码有其他问题,但我不知道是什么。请尝试简化。兄弟,以上代码没有完成。我只给出了示例或部分代码给我错误信息的代码可能与以下代码相同:if($html->find('h2.channeltitle',0)){}?
$html = new simple_html_dom();
$html->load_file($this->main_url.$lin->link);

if($html) {
    $var = $html->find('h2.channel-title',0);

    if(isset($var)) {
        fetch data from tables
    } else{
        //do something
    }
}