我使用PHP从数据库中获取URL列表。每个网址都由PHP中的Check_URL Function检查,它使用curl来检查网站是否生效。使用卷曲和PHP
function Check_URL($url) {
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_TIMEOUT, 3);
$page = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpcode >= 200 && $httpcode <= 301) {
return true;
} else {
return false;
}
}
不幸的是,页面需要永久加载。我读过curl_multi_init();可能是我的解决方案,但我不知道如何将其实现到我所拥有的。提前致谢。
所以,当你在你的服务器上加载一个页面时,这个函数被调用并检查一些urls数量?这意味着不仅是你的页面加载,而且你还在等待X URL被CURL加载。您加载了多少个网址?您可能想要考虑让其他内容触发您的脚本,如您的网页上的图像。 – Aerik 2012-03-13 23:02:57
这是你应该在后台真正做的事情,与为用户呈现页面的线程分开。将这些URL的任务投入到Beanstalkd中,并编写一个工作者来测试它们并将结果存储在数据库中。 – 2012-03-13 23:04:09
@Aerik - 30个网址开始。 – Joe 2012-03-13 23:05:06