所以我試圖從一個API獲取所有json數據,但是我無法可靠地得到所有數據的循環結束。下面是代碼我現在有在循環中cURL時掛起的PHP程序
$num = 1000;
$continue = TRUE;
$loops = 0;
while ($continue == TRUE AND $loops < 3) {
// initialize cURL session
$ch = curl_init($host . '/' . $service . '?limit=500' . '&offset=' . ($num)) or die("Could not connect to API.");
// set headers
$httpHeader = array(
'Content-Type: application/json;charset=UTF-8',
'Accept: application/json',
'SecureUrl: ' . $secureUrl,
'PrivateKey: ' . $privateKey,
'Token: ' . $token,
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeader);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);
$json = json_decode($response, TRUE);
if (isset($json[0]["Key"])) {
$continue = FALSE;
}
$num += 500;
$loops++;
curl_close($ch);
}
所有的變量都事先聲明。如果我停止while循環,一旦num
達到一定數量,我就能夠獲得json數據,但這並不總是可靠的。代碼在第3次或第4次執行時停止輸出json數據,並且在噴出一堆錯誤之前,在那裏停留最多5分鐘。
任何幫助,將不勝感激!
編輯:我發現我的問題。無論我的if語句的參數是什麼,我的程序都拒絕將$continue
更改爲FALSE
。我已經更新了我的代碼,如果有人能夠推斷爲什麼這會很好。請注意,即使我將if參數設置爲0 == 0
,$continue
仍然不會更改。
編輯2:我解決了我所有的問題。
你得到的錯誤是什麼? – aynber
我沒有看到你輸出任何數據,你是如何覆蓋你的數據'$ json'每個循環,我不認爲你想要做的。 – cmorrissey
@aynber「偏移量超過記錄總數」。 – BrastaSauce