使用Curl和PHP

时间:2012-03-13 22:58:49

标签: php curl

我使用PHP从数据库中获取URL列表。每个网址都由php中的Check_URL函数检查,该函数使用curl检查网站是否有效。

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();可能是我的解决方案,但我不确定如何将其实现到我拥有的内容中。提前谢谢。

2 个答案:

答案 0 :(得分:0)

初始化curl_multi_init后,您需要在for或foreach循环中遍历URL。你会在这里找到一个很好的例子:http://www.fusionswift.com/examples/2011/08/php-curl_multi_exec-example/

对于你的函数,我会让它处理一个URL数组作为参数。

答案 1 :(得分:0)

还可以使用CURLOPT_CONNECTTIMEOUT选项。

如果将CURLOPT_NOBODY设置为TRUE,您的函数可以更快地运行。

如果要查看多个网址,请查看this code