Web サイトの HTTP ステータスをできるだけ早くチェックする PHP スクリプトを作成しようとしています。
私は現在 get_headers() を使用しており、mysql データベースからの 200 個のランダムな URL のループで実行しています。
200 件すべてをチェックするには、平均 2 分 48 秒かかります。
それを(はるかに)速くするためにできることはありますか?
(私は fsockopen について知っています - 20 秒で 200 のサイトのポート 80 をチェックできます - しかし、サーバーがポートで応答する可能性があるため、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;
?>