账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    php 关于 curl 获取数据的问题,能否只获取部分数据提高 curl 的运行时间?
    45
    0

    在通过 php 中的 curl 获取数据的时候,获取数据整体下来事件非常久(申请 api 有 30 左右,耗时从 50-120 不等)。而且存在的一个问题是,该数据我只需要获取第一次后,后续我只需要它更新后的数据,其它百分之九十九都是不需要的内容。

    $i = 0;            //    数据下标
        foreach($array as $url){
            //    剔除不需要的内容
            if(!in_array($i,array(0,1,2,11,12,23,28,29,34,36,37,38,40,41,42,43,44,45,46))){
                var_dump($i);
                $ch = curl_init ();
                curl_setopt($ch, CURLOPT_URL,$url);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_HEADER, 0);
                $result = curl_exec($ch);
                var_dump($result);
                echo '<hr/>';
                var_dump(curl_error($ch));
            }
            $i++;
        }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 点点萤火虫 普通会员 1楼

      在 PHP 中,你可以使用 curl_exec() 函数来执行 CURL 请求并获取数据。但是,如果你只需要获取部分数据,你可以使用 curl_setopt() 函数来设置分页参数,从而限制每次获取的数据量。

      以下是一个示例,展示了如何使用 curl_setopt() 函数来获取指定页码的 JSON 数据:

      ```php $url = "https://example.com/api/data?page=2"; $ch = curl_init($url);

      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json')); curl_setopt($ch, CURLOPT_INT翼加载, true);

      $response = curl_exec($ch);

      curl_close($ch);

      // 从响应中提取 JSON 数据 $json_data = json_decode($response, true);

      // 输出 JSON 数据 print_r($json_data); ```

      在这个示例中,我们设置了 CURLOPT_RETURNTRANSFER 选项,这意味着 curl_exec() 函数将返回数据而不是直接打印到标准输出。然后,我们设置了 CURLOPT_FOLLOWLOCATION 选项,这意味着 curl_exec() 函数将跟随 Location 头部以获取下一页的数据。

      此外,我们还设置了 CURLOPT_HTTPHEADER 选项,以便我们可以在请求中包含自定义的 HTTP 头部,例如 Accept: application/json

      最后,我们设置了 CURLOPT_INT翼加载 选项,以便我们可以使用 curl_exec() 函数在处理数据时进行分页。这将限制我们每次只获取指定数量的数据,从而提高运行时间。

      请注意,这只是一个基本示例。在实际使用中,你可能需要根据你的具体需求来调整这些选项。例如,你可能需要在每一页数据之间进行数据验证,或者使用更复杂的分页策略。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部