Php CULLOPT_超时,是否有“else”功能?

Php CULLOPT_超时,是否有“else”功能?,php,curl,Php,Curl,如果在30秒内无法连接,curl将关闭连接 如你们所见,我使用的是代理列表。但是,某些代理IP有时在30秒内连接时出现问题,而curl在30秒内无法加载时正在关闭连接 如果达到curl超时,我想为curl connect尝试另一个ip。现在,如果ip不工作,curl将关闭所有内容。我想试试另一个ip。你能给我推荐一个函数吗 为@rubayet编辑。添加了新的代理功能您必须创建一个新的curl会话才能连接到另一个代理。因此,在代码周围放置一个foreach循环,并在代理数组中循环 还可以使用cur

如果在30秒内无法连接,curl将关闭连接

如你们所见,我使用的是代理列表。但是,某些代理IP有时在30秒内连接时出现问题,而curl在30秒内无法加载时正在关闭连接

如果达到curl超时,我想为curl connect尝试另一个ip。现在,如果ip不工作,curl将关闭所有内容。我想试试另一个ip。你能给我推荐一个函数吗


为@rubayet编辑。添加了新的代理功能

您必须创建一个新的curl会话才能连接到另一个代理。因此,在代码周围放置一个foreach循环,并在代理数组中循环

还可以使用curl\u errno和curl\u error检查超时之类的错误


也许设置CURLOPT_RETURNTRANSFER并将其加载到var中以修改或处理它会很有用。

您必须创建一个新的curl会话以连接到另一个代理。因此,在代码周围放置一个foreach循环,并在代理数组中循环

还可以使用curl\u errno和curl\u error检查超时之类的错误


也许设置CURLOPT\u RETURNTRANSFER并将其加载到var中以修改或处理它会很有用。

您只需使用curl\u errno来测试是否发生了CURLE\u操作时间

您只需使用curl\u errno来测试是否发生了CURLE\u操作时间

哦,是的。这就是我需要的。我还从未见过这种功能。谢谢你的建议。哦,是的。这就是我需要的。我还从未见过这种功能。谢谢你的建议。这是我的代理功能。如何将其与您的功能一起使用?函数get_random_proxy{srand doublemicrotime*1000000;$f_contents=file proxy.txt;$line=$f_contents[array_rand$f_contents];return$line;}$proxy=get_random_proxy;更新了代码。在无限循环中调用get_random_proxy,并在收到响应时中断。这是我的代理函数。如何将其与您的功能一起使用?函数get_random_proxy{srand doublemicrotime*1000000;$f_contents=file proxy.txt;$line=$f_contents[array_rand$f_contents];return$line;}$proxy=get_random_proxy;更新了代码。在无限循环内调用get_random_proxy,并在收到响应时中断。
    <?php
function get_random_proxy()
{
    srand ((double)microtime()*1000000);
    $f_contents = file ("proxy.txt");
    $line = $f_contents[array_rand ($f_contents)];
    return $line;
}
$proxy = get_random_proxy(); 
            $ch = curl_init(); 
            curl_setopt($ch, CURLOPT_URL, "example.com");
            curl_setopt($ch, CURLOPT_PROXY,$proxy); 
            curl_setopt($ch, CURLOPT_TIMEOUT ,30);
            curl_exec($ch);  
            curl_close($ch);      
    ?>
function get($url, $proxy){
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_PROXY,$proxy); 
    curl_setopt($ch, CURLOPT_TIMEOUT ,30);
    $response = curl_exec($ch);  
    curl_close($ch);

    return $response
}

$url = 'example.com';

while(true) {
   $proxy = get_random_proxy();
   $response = get($url, $proxy);
   if ($response === False) continue;
   else break;
}

//do something with $response