당신은 간단한 프록시 검사기를 가질 수
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
안녕 , 당신의 제안에 감사드립니다. 문제는 점검에 오류가 없지만 갑자기 다중 컬 연결에 오류가있을 수 있다는 것입니다. 행복하게 curl_multi_exec()의 문서에 해결책이 있습니다 : http://php.net/manual/en/function.curl-multi-exec.php – Crayl
여기에 일반적인 다중 컬 예제가 있습니다. http : // stackoverflow .com/a/10036599/1226894 – Baba