2014-09-09 2 views
3

curl을 사용하고 모든 매개 변수를 올바르게 설정하고 있지만 CURLOPT_TIMEOUT이 무시되고 무한 루프가 허용됩니다. 다음은 내 Curl 요청에 대한 구성입니다.CURLOPT_TIMEOUT이 전혀 작동하지 않습니다 (PHP)

$user_agent = 'Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0'; 
$options = array(

     CURLOPT_CUSTOMREQUEST => "GET", //set request type post or get 

     CURLOPT_POST => false, //set to GET 

     CURLOPT_USERAGENT => $user_agent, //set user agent 

     CURLOPT_COOKIEFILE => dirname(__FILE__)."/cookie.txt", //set cookie file 

     CURLOPT_COOKIEJAR => dirname(__FILE__)."/cookie.txt", //set cookie jar 

     CURLOPT_RETURNTRANSFER => true, // return web page 

     CURLOPT_SSL_VERIFYPEER, FALSE, //ignore ssl 

     CURLOPT_PROXY =>$proxy['ip'], 

     CURLOPT_PROXYPORT =>$proxy['port'], 

     CURLOPT_HEADER => false, // don't return headers 

     CURLOPT_FOLLOWLOCATION => true, // follow redirects 

     CURLOPT_ENCODING => "", // handle all encodings 

     CURLOPT_AUTOREFERER => true, // set referrer on redirect 

     CURLOPT_CONNECTTIMEOUT => 20, // timeout on connect 

     CURLOPT_TIMEOUT => 10, // timeout on response 

     CURLOPT_MAXREDIRS => 10, // stop after 10 redirects 

    ); 
    $ch = curl_init($url); 

    curl_setopt_array($ch, $options); 

    $content = curl_exec($ch); 

    $err = curl_errno($ch); 

    $errmsg = curl_error($ch); 

    $header = curl_getinfo($ch); 
    curl_close($ch); 

나는 디버깅이 최선이 아니므로 문제가 무엇인지 알 수 없습니다. 도와주세요.

+0

어떤 버전의 CURL을 사용하고 있습니까? version> = 7.16.2이면'CURLOPT_CONNECTTIMEOUT_MS'를 사용해보십시오. 버전을 확인하려면' ' – ashutosh

+0

im 사용하기 7.19.7 – Jamie337nichols

+0

나는 CURLOPT_CONNECTTIMEOUT_MS를 사용하려고했지만 여전히 무한 루프를 얻고있다. – Jamie337nichols

답변

1

curl_setopt ($ connection, CURLOPT_TIMEOUT, $ seconds)는 curl_exec() 함수 바로 직전에 호출해야합니다.

내가 더 일찍 전화했을 때 그것은 나를 위해 작동하지 않았다.

관련 문제