我正在制作一个PHP脚本,尽可能快地检查网站的HTTP状态。
我目前正在使用get_headers()函数,并在从mysql数据库中随机选择的200个URL的循环中运行它。
为了检查所有200个URL,平均需要2分48秒。
有什么方法可以使速度(更)快吗?
(我知道fsockopen - 它可以在20秒内检查200个站点的80端口 - 但它与请求HTTP状态代码不同,因为服务器可能在该端口上响应,但可能无法正确加载网站等)
以下是代码:
我目前正在使用get_headers()函数,并在从mysql数据库中随机选择的200个URL的循环中运行它。
为了检查所有200个URL,平均需要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;
?>