【问题标题】:PHP - How to make sure if a curl_multi proxy connection was succesful?PHP - 如何确定 curl 多代理连接是否成功?
【发布时间】:2012-09-15 10:53:08
【问题描述】:

我想对代理使用多 cURL,但我不知道如何检查每个代理连接是否成功。使用普通的单个 cURL,我创建了一个简单的循环,只要 curl_errno 不为 0,该循环就会运行。

但是如何用多 cURL 制作呢?

谢谢!

【问题讨论】:

    标签: php curl


    【解决方案1】:

    在多卷曲上运行查询之前,您可以有一个简单的代理检查器

    简单的代理检查器

    function __proxyChecker($proxy)
    {
        $ch = curl_init("http://google.com");
        curl_setopt($ch, CURLOPT_TIMEOUT, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1);
        curl_setopt($ch, CURLOPT_PROXY, $proxy);
        curl_setopt($ch, CURLOPT_NOBODY, true);
        $handle = curl_exec($ch);
        curl_close($ch);
        return $handle ;
    }
    

    用法

    $proxies = "211.136.10.29:80
    88.146.161.215:3128 
    211.136.10.29:80 
    61.35.0.39:6515 
    77.78.197.15:8080
    211.161.152.106:80";
    
    $proxies = explode("\n", $proxies);
    //shuffle($proxies);
    $url = "http://google.com";
    $handle = curl_init($url);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
    
    echo "<pre>";
    foreach ( $proxies as $proxy ) {
        $proxy = trim($proxy);
        if(empty($proxy))
            continue ;
    
        if(__proxyChecker($proxy))  
            echo $proxy , " - ok \n";
        else
            echo $proxy , " - bad \n";
    }
    

    输出

    211.136.10.29:80 - ok 
    88.146.161.215:3128 - ok 
    211.136.10.29:80 - ok 
    61.35.0.39:6515 - bad 
    77.78.197.15:8080 - bad 
    211.161.152.106:80 - ok 
    

    【讨论】:

    猜你喜欢
    • 2015-03-30
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 2017-01-26
    相关资源
    最近更新 更多