#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
или только одну строку из ответа?