Я работаю над простым приложением, которое сканирует все URL-адреса на странице и отображает код состояния http каждого URls.Когда URL больше 50, я получил ошибку Неустранимая ошибка: превышено максимальное время выполнения 30 секунд , что я и сделал, добавьте эту строку кода ini_set('max_execution_time', 300);
.Это работает, моя проблема в том, что мне нужно подождать до его завершения, затем отобразить весь результат, есть ли способ оптимизировать его или отобразить результат во время сканирования.
Спасибо.
КОД
$html = file_get_contents('http://www.example.com');
$dom = new DOMDocument();
@$dom->loadHTML($html);
// grab all the on the page
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
$url = $href->getAttribute('href');
echo $url.'-'. statusCode($url) .'<br />';
}
function statusCode($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $httpCode;
}