【问题标题】:How to detect element is exist or not如何检测元素是否存在
【发布时间】:2015-02-19 20:36:26
【问题描述】:

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

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

$html = new simple_html_dom();
$html->load_file($this->main_url.$lin->link);
if($html){
    //check if language heading h2 exist then process forward
    if($html->find('h2.channel-title',0)){
        fetch data from tables
     }
}

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

在许多页面中<h2 class="channel-title"> English Links</h2> 存在,因此我有根据它们的代码并在我的 foreach 循环中进一步处理它工作正常并获取所有数据。

但是

<h2 class="channel-title">English Links</h2> 标签不存在时,它会给我一个错误

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 代码,否则运行另一个但不要给出错误它停止我的整个脚本。 :(

【问题讨论】:

标签: php simple-html-dom


【解决方案1】:

这可能会有所帮助。

$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
    }
}

【讨论】:

  • 是不是和那个一样:if($html->find('h2.channel-title',0)) {} ?
【解决方案2】:
var_dump($html);

您正在使用哪个库?

【讨论】:

  • simple html dom,我有转储,但在某些页面中有 h2 元素,在某些页面中没有元素,所以我如何检测它?
  • 我认为 $html 不是对象,所以不能调用方法“find”。当然,原因是页面中没有 h2.channel-title 。可能的解析错误?
  • 各位大侠帮帮我,我该怎么做,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
  • 2013-11-11
相关资源
最近更新 更多