当存在空Curl响应时退出/中断循环

时间:2014-04-23 01:41:23

标签: php api curl

所以我循环到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;


    } 

我在循环中迷失了,当getSurveyResponse函数返回空时,我只想终止while循环。我选择了空,因为如果没有更多的回复,它会返回一个空白页面。

更新:

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) {
 }
}

1 个答案:

答案 0 :(得分:1)

当没有更多结果可用时,您获得的实际上不是空字符串,而是数据有限的对象。由于空响应将$data属性作为具有零元素的数组返回,因此您只需要测试empty($outputGizmo->data)以退出循环:

来自var_dump()

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

数组为空时中断。其余的代码看起来好像可以正常工作。

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