2011-07-20 25 views
1

我用這個功能,使捲曲的請求:PHP curl_exec()掛

function curl_request($options) //single custom cURL request. 
{ 
    $ch = curl_init(); 

    $options[CURLOPT_FOLLOWLOCATION] = true; 
    $options[CURLOPT_COOKIEJAR] = 'cookies.txt'; 
    $options[CURLOPT_COOKIEFILE] = 'cookies.txt'; 
    $options[CURLINFO_HEADER_OUT] = true; 
    $options[CURLOPT_VERBOSE] = true; 
    $options[CURLOPT_RETURNTRANSFER] = true; 
    $options[CURLOPT_CONNECTTIMEOUT] = 5; 
    $options[CURLOPT_TIMEOUT] = 5; 

    curl_setopt_array($ch, $options); 

    $response = curl_exec($ch); 

    curl_close($ch); 

    return $response; 
} 

腳本有時會掛起,但並非總是如此,在$response = curl_exec($ch)線。即使PHP腳本設置爲無限超時(在客戶端,Firebug將其視爲「中止」),也會發生這種情況。錯誤日誌中沒有任何內容。當它掛起時,它不會越過那條線。

可能會發生什麼?有什麼建議麼?

+0

'CURLOPT_COOKIEJAR'和'CURLOPT_COOKIEFILE'指向同一個文件?你確定這是你想要的嗎?爲了測試,我只是評論這兩行以防止因文件訪問造成的死鎖。 – hakre

+0

事情是請求需要cookies工作 – babonk

+1

是的,但只是爲了調試。或者監視網絡流量並報告腳本掛起時發生的情況。 – hakre

回答

2

這個問題似乎是服務器的資源。當我切換到一個更高的帶寬限制更好的Web主機事情工作正常。