PHP – Как убедиться, что прокси-соединение curl_multi было успешным?

Я хочу использовать multi-cURL с прокси-серверами, но я не могу понять, как проверить, было ли каждое прокси-соединение успешным. С обычным одиночным cURL я делаю простой цикл, который длится так долго, что curl_errno не равен 0.

Но как сделать с multi-cURL?

Благодаря!

У вас может быть простой прокси-контролер, прежде чем запускать запрос на многострочный

Простой прокси-сервер

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