在对Highrise API执行CURL请求时,循环挂起

时间:2014-12-12 20:09:24

标签: php curl highrise

我无法正常执行此代码。 Highrise API的工作方式是,它只会在每个请求中返回500个结果,以便在将?n=number添加到URL末尾时获得更多结果。我有近9000个条目,我需要循环遍历每个条目并根据一些条件语句提取信息。

我的目标是遍历此功能,每次将500添加到URL的末尾,获得额外的500个条目。为了测试我只有它循环3次但由于某种原因它只是挂起,永远不会返回任何东西。据我所知,每次请求都会检索大量数据,因此我等了3分钟没有运气。

我检查了我的错误日志,但没有看到任何错误。也许我在循环内部不正确地执行curl命令。如果我删除第一个for循环,我会按预期返回前500个结果。

<?php

$curl = curl_init();

function runScript($curl) {
    for($currentCount = 0; $currentCount <= 1000; $currentCount + 500) {
        //set parameters to be used for curl options
        curl_setopt_array($curl, array(
            CURLOPT_USERPWD => 'xxxxxxxxxxxx:X',
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_URL => "https://xxxxxxx.highrisehq.com/people.xml?n=$currentCount",
            CURLOPT_USERAGENT => 'XXXXXXXXX Test App (xxxx@xxxxxx.com)'
        ));

        $resp = curl_exec($curl);

        $xml = new SimpleXMLElement($resp);


        foreach($xml->person as $person) {
            if($person->{'subject_datas'}) {
                foreach($person->{'subject_datas'}->{'subject_data'} as $subjectData) {
                    if($subjectData->{'subject_field_id'} == 780666) {
                        echo $person->{'first-name'};
                        echo ", ";
                        echo $person->{'last-name'};
                        echo ", ";
                        echo $person->{'title'};
                        echo ", ";
                        echo $person->{'company-name'};
                        echo ", ";

                        foreach($person->{'contact-data'}->{'email-addresses'} as $email) {
                            echo $email->{'email-address'}->{'address'};
                        }

                        echo ", ";
                        echo $subjectData->{'value'};
                        echo "<br/>";
                    }
                }
            }
        }
    }
}

runScript($curl);
curl_close($curl);

0 个答案:

没有答案
相关问题