Как обнаружить элемент существует или нет

0

Привет всем, я получаю данные, используя простой html dom

Это мой код php, который извлекает данные с сайта include ('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)) поиск h2.channel-title в функции find простого html dom дает мне фатальную ошибку, когда 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, а другой запустите другой, но не сообщайте об ошибке, чтобы остановить мой весь скрипт. :(

  • 0
    На самом деле этого не происходит, что-то не так с вашим кодом, но я не могу сказать, что это. Попробуйте упростить.
  • 0
    Бро и выше код не завершен, я приведу только пример или часть кода, который дает мне ошибку
Показать ещё 1 комментарий
Теги:
simple-html-dom

2 ответа

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
    }
}
0
var_dump($html);

Какую библиотеку вы используете?

  • 0
    простой HTML-дом и у меня есть дамп, но на некоторых страницах есть элемент h2, а на некоторых страницах нет элемента, так как я могу его обнаружить?
  • 0
    Я думаю, что $ html не является объектом, поэтому метод "найти" не может быть вызван. Уверен, что причина в том, что на странице нет h2.channel-title. Возможна ошибка разбора?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню