• php CURL 发送请求封装


    cURL可以使用URL的语法模拟浏览器来传输数据,因为它是模拟浏览器,因此它同样支持多种协议,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等协议都可以很好的支持,包括一些:HTTPS认证,HTTP POST方法,HTTP PUT方法,FTP上传,keyberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,上传文件断点续传,http代理服务器管道,甚至它还支持IPv6,scoket5代理服务器,通过http代理服务器上传文件到FTP服务器等等。
    使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,cURL 是一个功能强大的PHP库。

    1、PHP建立CURL请求的基本步骤

    ①:初始化

    1 curl_init()

    ②:设置属性

    1 curl_setopt().有一长串cURL参数可供设置,它们能指定URL请求的各个细节。

    ③:执行并获取结果

    1 curl_exec()

    ④:释放句柄

    1 curl_close()

    2、封装:

     1   public function http_query($url, $get = null, $post = null)
     2    {
     3         if (isset($get)) {
     4             if (substr_count($url, '?') > 0) {
     5                 $url .= "&" . http_build_query($get);
     6             } else {
     7                 $url .= "?" . http_build_query($get);
     8             }
     9         }
    10         // 初始化一个cURL会话
    11         $ch = curl_init($url);
    12         if (isset($post)) {
    13             curl_setopt($ch, CURLOPT_POST, TRUE);         #开启post
    14             curl_setopt($ch, CURLOPT_POSTFIELDS, $post);  #post数据
    15         }
    16         curl_setopt($ch, CURLOPT_HEADER, 0);            #是否需要头部信息(否)
    17         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    #如果成功只将结果返回,不自动输出任何内容。
    18         curl_setopt($ch, CURLOPT_TIMEOUT, 5);           #设置允许执行的最长秒数。
    19         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);    #在发起连接前等待的时间,如果设置为0,则无限等待。
    20         //忽略证书
    21         if (substr($url, 0, 5) == 'https') {
    22             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    23             curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    24         }
    25         $curl_result = curl_exec($ch);
    26         if ($curl_result) {
    27             $data = $curl_result;
    28         } else {
    29             $data = curl_error($ch);
    30         }
    31         curl_close($ch);    #关闭cURL会话
    32         return $data;
    33     }
  • 相关阅读:
    登录远程服务器运行的程序,退出服务器仍然运行的方法
    python爬虫错误
    python将字符转换为字典
    shell中$(( )) 与 $( ) 还有${ }的区别
    JavaBean 开发入门
    反射机制 动态代理
    反射机制的深入应用
    反射机制 反射的应用 ---取得类的结构
    反射机制 CLass类的使用
    JSP 的九大内置对象
  • 原文地址:https://www.cnblogs.com/daixin/p/12978377.html
Copyright © 2020-2023  润新知