Что-то более быстрое, чем 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;
?>
7
задан Clarkey 1 April 2012 в 12:22
поделиться