Задать вопрос
@xuxubla

Как избегать ошибок при использовании функции load_file() в SIMPLE HTML DOM?

Пользуюсь для парсинга библиотекой Simple HTML DOM. Функция load_file() работает, как известно, на основе file_get_contentns().
Есть страницы магазина, которые крайне медленно грузятся (просто какой-то баговый раздел), в результате чего появляется предупреждение:
Failed to Open Stream: HTTP request failed.
Само по себе предупреждение - не проблема, пусть будет. Просто к пустому объекту нельзя применять find(), там уже "фатал".
Как грамотно проверить на валидность загруженное содержимое $html?
Я пробовал такой вариант:
foreach ($item as $link) {
    $html = new simple_html_dom;
    $html -> load_file($link);
    if ($html->root !== NULL) { парсим }
}

root - это свойство объекта, которое равно NULL, если объект пуст. До первой ошибки всё работает адекватно, но как только сталкивается с ошибкой, он логично пропускает эту страницу, переходит к следующей странице, но уже независимо от характера этой страницы (получилось загрузить или нет - это видно по предупреждениям) отказывается парсить.

В чем может быть дело?
  • Вопрос задан
  • 274 просмотра
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
А почему бы не сделать рекурсивную функцию, где если в условии подпадает null, то функция опять вызывается и пытается спросить?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы