zoukankan      html  css  js  c++  java
  • php之cURL惯用

    1、php cURL的强大:PHP 支持 Daniel Stenberg 创建的 libcurl 库,能够连接通讯各种服务器、使用各种协议。libcurl 目前支持的协议有 http、https、ftp、gopher、telnet、dict、file、ldap。 libcurl 同时支持 HTTPS 证书、HTTP POST、HTTP PUT、 FTP 上传(也能通过 PHP 的 FTP 扩展完成)、HTTP 基于表单的上传、代理、cookies、用户名+密码的认证。

    2、基本步骤:初始化==》设置参数==》执行==》关闭

    初始化:

    resource curl_init ([ string $url = NULL ] )    //初始化新的会话,返回 cURL 句柄,供curl_setopt()、 curl_exec() 和 curl_close() 函数使用。
    resource curl_multi_init ( void )    //允许并行地处理批处理cURL句柄。

    设置参数:

    bool curl_setopt ( resource $ch , int $option , mixed $value )
    /*
       常用设置:  CURLOPT_URL---需要获取的 URL 地址,也可以在curl_init() 初始化会话的时候
                   CURLOPT_HEADER---启用时会将头文件的信息作为数据流输出
             CURLOPT_POST---TRUE 时会发送 POST 请求,类型为:application/x-www-form-urlencoded,是 HTML 表单提交时最常见的一种
             CURLOPT_POSTFIELDS---全部数据使用HTTP协议中的 "POST" 操作来发送 
             CURLOPT_RETURNTRANSFER---TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出 
              CURLOPT_SSL_VERIFYPEER---FALSE 禁止 cURL 验证对等证书(peer's certificate)。要验证的交换证书可以在 CURLOPT_CAINFO 选项中设置,或在 CURLOPT_CAPATH中设置证书目录。
    */

    执行:

    mixed curl_exec ( resource $ch )    //这个函数应该在初始化一个 cURL 会话并且全部的选项都被设置后被调用。
    int curl_multi_exec ( resource $mh , int &$still_running )  //处理curl_multi_init() 返回的 cURL 多个句柄

    关闭:

    void curl_close ( resource $ch )    //关闭 cURL 会话并且释放所有资源。cURL 句柄 ch 也会被删除。
    void curl_multi_close ( resource $mh )    //关闭一组cURL句柄。

     3、GET的实现:php curl的get方式最为简单基本,只需要按照步骤即可获取网页返回的内容

    $url="xxx";
    //初始化
    $ch = curl_init();
    //设置选项,一般至少设置2个以上,以下三个最为常设
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    //执行并获取HTML文档内容
    $result = curl_exec($ch);
    //释放curl句柄
    curl_close($ch);
    //打印获得的数据
    print_r($result);

    4、POST的实现:post发送肯定要设置post方式啦,而要post的数据用数组保存起来

    $url = "xxx";
    $data = array ("name" => "zhylioooo","pswd" => "12345");
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    // pos发送
    curl_setopt($ch, CURLOPT_POST, 1);
    // 要post的数据
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $output = curl_exec($ch);
    curl_close($ch);
    //打印获得的数据
    print_r($output);

    5、FILE的实现:上传文件和post差不多,只是数据不同而已

    $url = "";
    $data = array(
                "name"=>"zhylioooo",    //其他要post的数据
                "file" => new CURLFile($_FILES['upfile'['tmp_name']) //指定是上传文件,抛弃@,参数是文件路径
                );
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //跳过SSL证书检查。 
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $output = curl_exec($ch);
    curl_close($ch);
    echo $output;

    6、php的cURL的官方网址:http://php.net/manual/zh/book.curl.php

  • 相关阅读:
    mybatis 框架 的应用之四(一对一 与 一对多)
    mybatis 框架 的应用之三(操作两张没有关联的表,存在主键和外键关系)
    mybatis 框架 的应用之二(批量添加、实现分页查询)
    hibernate 框架的简单使用
    Java c3p0 连接 MySQL
    Oracle 复制表
    web 应用中访问 Spring 具体实现
    oracle 创建表 外键约束
    oracle 通过序列实现某字段自增
    Swift数组的sort、filter、forEach、map等方法,$的使用
  • 原文地址:https://www.cnblogs.com/zhylioooo/p/7911490.html
Copyright © 2011-2022 走看看