Что-то быстрее, чем get_headers ()
Я пытаюсь сделать PHP-скрипт, который будет проверять HTTP-статус сайта как можно быстрее.
В настоящее время я использую get_headers () и запускаю его в цикле из 200 случайных URL-адресов из базы данных MySQL.
Чтобы проверить все 200 - это в среднем 2 м 48 с.
Что я могу сделать, чтобы сделать это (намного) быстрее?
(Я знаю о fsockopen - он может проверить порт 80 на 200 сайтах за 20 с, но это не то же самое, что запросить код состояния http, потому что сервер может отвечать на порт - но может не загружать сайты правильно и т. Д.)
Вот код ..
<?php
function get_httpcode($url) {
$headers = get_headers($url, 0);
// Return http status code
return substr($headers[0], 9, 3);
}
###
## Grab task and execute it
###
// Loop through task
while($data = mysql_fetch_assoc($sql)):
$result = get_httpcode('http://'.$data['url']);
echo $data['url'].' = '.$result.'<br/>';
endwhile;
?>