zoukankan      html  css  js  c++  java
  • CURL的使用

    CURL的使用

    CURL(Client URL)的使用流程:

    1. curl_init():初始化cURL;

    2. curl_exec():向服务器发送请求,接收服务器数据;

    3. curl_close():关闭cURL.

    一、CURL的常见的两种使用方式

     1. GET方式

    /**
     * CURL GET方式向开放平台请求相关信息
     * @param  [string] $url       抓取的url
     * @param  [array] $header    头信息
     * @return [string] $data      返回的结果         
     */
    static function curlGet($url, $header){
      $curl = curl_init();//初始化
      curl_setopt($curl, CURLOPT_URL, $url);//设置抓取的url
      curl_setopt($curl, CURLOPT_HTTPHEADER, $header);  //设置头信息的地方
      curl_setopt($curl, CURLOPT_HEADER, false);//设置头文件的信息作为数据流输出
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);//设置获取的信息以文件流的形式返回,而不是直接输出
      $data = curl_exec($curl);//执行命令
      curl_close($curl);//关闭URL请求
      return $data;
    }

    2. POST方式

    /**
     * CURL POST方式向开放平台请求相关信息
     * @param  [string] $url       抓取的url
     * @param  [array] $header    头信息
     * @param  [string] $post_data 附加的post数据
     * @return [string] $data      返回的结果           
     */
    static function curlPost($url, $header, $post_data){
      $curl = curl_init();//初始化
      curl_setopt($curl, CURLOPT_URL, $url);//设置抓取的url
      curl_setopt($curl, CURLOPT_HTTPHEADER, $header);  //设置头信息的地方
      curl_setopt($curl, CURLOPT_HEADER, false);//设置头文件的信息作为数据流输出
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);//设置获取的信息以文件流的形式返回,而不是直接输出
      curl_setopt($curl, CURLOPT_POST, true);//设置post方式提交
      curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);//设置post数据
      $data = curl_exec($curl);//执行命令
      curl_close($curl);//关闭URL请求
      return $data;
    }
    

    二、CURL的其他应用

    1. 作为爬虫去获取网页内容

    <?php
      $curlobj = curl_init();  //初始化
      curl_setopt($curlobj, CURLOPT_URL, "http://www.baidu.com");  // 设置访问网页的URL
      curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);  // 执行之后不直接打印出来
      $output = curl_exec($curlobj);  // 执行
      curl_close($curlobj);  // 关闭cURL
    ?>
    

      

      

  • 相关阅读:
    linux下文件的复制、移动与删除
    031_spark架构原理
    Scala基础篇-05求值策略
    Ceph pg分裂流程及可行性分析
    Ceph中的序列化
    奔跑吧,OpenStack现场分享:超融合架构如何抹平物理硬件差异?
    Ceph中Bufferlist的设计与使用
    IaaS中的统一存储:从设计到实现
    关于Ceph现状与未来的一些思考
    解析Ceph: 数据的端到端正确性和 Scrub 机制
  • 原文地址:https://www.cnblogs.com/ioveNature/p/6482991.html
Copyright © 2011-2022 走看看