Пользуюсь для парсинга библиотекой 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, если объект пуст. До первой ошибки всё работает адекватно, но как только сталкивается с ошибкой, он логично пропускает эту страницу, переходит к следующей странице, но уже независимо от характера этой страницы (получилось загрузить или нет - это видно по предупреждениям) отказывается парсить.
В чем может быть дело?