2014-04-23 62 views
1

因此,即時循環到surveyGizmo,檢索結果。由於每個cURL響應只允許500個響應,所以我必須保持循環,直到出現空響應。所以,我的代碼一個大致的輪廓看起來是這樣的:當存在空捲曲響應時退出/斷開循環

$pageIndex = 1; 
    while ($pageIndex) { 
     $outputGizmo = getSurveyResponse($method = 'GET', $pageIndex); 
      if ($outputGizmo == '') { 
       break; 
      } 

     foreach($outputGizmo->data as $surveyResponse) { 
      $firstName = $surveyResponse->{'[question(2)]'}; 
      $lastName = $surveyResponse->{'[question(10)]'}; 
      $email = $surveyResponse->{'[question(3)]'}; 
      $phone = $surveyResponse->{'[question(5)]'}; 
      $postcode = $surveyResponse->{'[question(6)]'}; 

      // Add to local database will happen here 

     } 


     $pageIndex += 1; 


    } 

我迷失在我的循環,我只是想終止while循環,當getSurveyResponse,函數返回空。我選擇了空白,因爲如果沒有更多的響應,它將從字面上返回空白頁面。

UPDATE:

object(stdClass)#1 (6) { 
["result_ok"]=> 
bool(true) 
["total_count"]=> 
string(1) "1" 
    ["page"]=> 
string(1) "2" 
["total_pages"]=> 
int(1) 
["results_per_page"]=> 
string(3) "100" 
["data"]=> 
array(0) { 
} 
} 
+0

你看起來應該工作,_if_'$ outputGizmo =='''。也就是說,如果響應確實是一個空字符串。由於您的後續循環使用'$ outputGizmo-> data',這意味着'$ outputGizmo'不是一個字符串。對空響應執行'var_dump($ outputGizmo)'來查看它實際包含的內容。 –

+0

「空響應」可能仍然有某種類型的響應。我會假設它會返回一些類型的錯誤信息或錯誤代碼,你應該檢查它而不是空字符串。 – kennypu

+0

@MichaelBerkowski你是對的,一個var_dump顯示了一個部分的迴應,我會玩這個。 –

回答

1

當沒有更多的結果可用,什麼你得到實際上不是一個空字符串,但有限的數據對象。當數組爲空

["data"]=> 
array(0) { 
} 

中斷:由於空響應返回$data財產與零個元素的數組,你只需要測試empty($outputGizmo->data)退出你的循環:

從你var_dump()。您的其他代碼看起來好像會按原樣工作。

if (empty($outputGizmo->data)) { 
    break; 
}