zoukankan      html  css  js  c++  java
  • 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     }
  • 相关阅读:
    C#组合算法 (2)
    用匿名函数来更方便的使用缓存
    之通用权限(五):项目描述表组(转)
    软件代码(程序)管理办法
    搭建开发架构的思路
    (转)七秘诀工作效率与薪水翻番
    uml学习入门 2面向对象方法分析与设计
    一个.Net开发组合:Powerdesigner+数据库+分层设计+.Net代码生成器+VS2005
    Log4Net介绍
    【自然框架】之通用权限(一):简介、数据结构 (转)
  • 原文地址:https://www.cnblogs.com/daixin/p/12978377.html
Copyright © 2011-2022 走看看