PHP Curl Pagination:更快的方式?

时间:2014-11-12 19:56:35

标签: php function api curl instagram

我想要使用Instagram API检索用户喜欢的所有媒体。 Instagram目前使用以下端点返回最近300个喜欢的媒体:

GET /users/self/media/liked

每个调用返回大约30个结果,因此我有大约10页要使用我的curl函数进行扫描,大约需要10秒。

有更快的方法吗?我知道curl_multi允许你解雇mu

public function fetchLikes() 
{
    $url = 'https://api.instagram.com/v1/users/self/media/liked?count=100&access_token=' . $access_token;

    while (isset($url) && $url != '') {  
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        $jsonData = curl_exec($ch);
        curl_close($ch);

        $response = json_decode($jsonData);

        foreach ($response->data as $post) {

            echo $post->user->username . "<br>";
        }

        $url = $response->pagination->next_url;
    }
}

1 个答案:

答案 0 :(得分:1)

在循环播放前移动 curl_init()功能,并在片刻之后移动 curl_close(),即使它不是义务。