Проблема с простой ошибкой html dom

#php #simple-html-dom

#php #simple-html-dom

Вопрос:

Ну, всем привет, на самом деле я работаю над небольшим php-скриптом, который получает содержимое со страниц Википедии rand, это код, который я использую:

 <?
include('dom.php');
$html = file_get_html('http://ar.wikipedia.org/wiki/خاص:عشوائي');
foreach($html->find('h1#firstHeading') as $element) 
       echo $element->span->innertext . '<br>';
?>
  

но иногда я получаю это сообщение об ошибке:

не удалось открыть поток: неверный URL перенаправления

Я хочу, чтобы скрипт повторял попытки много раз, пока эта ошибка не исчезнет, чтобы он мог получить содержимое со случайной страницы.

Ответ №1:

Итак, эта ошибка подходит для вас, поскольку вы генерируете случайный URL страницы?

Чем пытаться try catch :

 function getRandomUrl()
{
    include('dom.php');
    try {
        $html = file_get_html('http://ar.wikipedia.org/wiki/خاص:عشوائي');
        foreach($html->find('h1#firstHeading') as $element) {
            echo "{$element->span->innertext}<br/>";
        }
    } catch (Exception $e) {
        getRandomUrl();
    }
}
  

Также вы можете попробовать запустить код без ошибок:

 @file_get_html($randomUrl);
  

Комментарии:

1. @user3756377 Откуда вы знаете, что это не работает? Предоставьте больше информации, а не просто «Nop, копирование / вставка не работает, найдите ошибку для меня, потому что я слишком ленив, чтобы сказать что-то еще об этом»

2. Я вижу эту ошибку: Неустранимая ошибка: вызов функции-члена find() для не-объекта в

3. @user3756377 вы вложили весь свой код внутрь try - catch или только одну строку из ответа?