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请求的基本步骤

①:初始化

 curl_init()

②:设置属性

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

③:执行并获取结果

 curl_exec()

④:释放句柄

 curl_close()

2、封装:

   public function http_query($url, $get = null, $post = null)
{
if (isset($get)) {
if (substr_count($url, '?') > 0) {
$url .= "&" . http_build_query($get);
} else {
$url .= "?" . http_build_query($get);
}
}
// 初始化一个cURL会话
$ch = curl_init($url);
if (isset($post)) {
curl_setopt($ch, CURLOPT_POST, TRUE); #开启post
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); #post数据
}
curl_setopt($ch, CURLOPT_HEADER, 0); #是否需要头部信息(否)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); #如果成功只将结果返回,不自动输出任何内容。
curl_setopt($ch, CURLOPT_TIMEOUT, 5); #设置允许执行的最长秒数。
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); #在发起连接前等待的时间,如果设置为0,则无限等待。
//忽略证书
if (substr($url, 0, 5) == 'https') {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
}
$curl_result = curl_exec($ch);
if ($curl_result) {
$data = $curl_result;
} else {
$data = curl_error($ch);
}
curl_close($ch); #关闭cURL会话
return $data;
}

php CURL 发送请求封装的更多相关文章

  1. 转:PHP中的使用curl发送请求(GET请求和POST请求)

    原文地址:http://www.jb51.net/article/104974.htm 使用CURL发送请求的基本流程 使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤: 1.初始 ...

  2. 使用PHP中的curl发送请求

    使用CURL发送请求的基本流程 使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤: 初始化连接句柄: 设置CURL选项: 执行并获取结果: 释放VURL连接句柄. 下面的程序片段是 ...

  3. curl post请求封装

    /* POST /servlet/ICBCCMPAPIReqServlet?userID=jyi.y.1001&PackageID=201807311347539185&SendTim ...

  4. curl发送请求

    一.get请求 curl "http://www.baidu.com"  如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地 curl -i "http:// ...

  5. curl发送请求时携带cookie-转载未验证

    <?php header('Content-Type:text/html;charset=utf-8'); echo "<pre>"; function curl ...

  6. curl 发送请求的时候报错

    AWS HTTP error: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see ...

  7. php http请求封装

    /** * 发送HTTP请求方法,目前只支持CURL发送请求 * @param string $url 请求URL * @param array $params 请求参数 * @param strin ...

  8. curl发送get和post请求

    function getAction($url='') { // curl 请求一共分四步,初始化,设置属性,执行并获取结果,释放句柄 // 一.初始化 $curl = curl_init(); // ...

  9. curl 发送get post请求

    function getAction($url=''){ // curl 请求一共分四步,初始化,设置属性,执行并获取结果,释放句柄 // 一.初始化 $curl = curl_init(); // ...

随机推荐

  1. 软件——IDEA中如何去掉警告虚线

    初次安装使用IDEA,总是能看到导入代码后,出现很多的波浪线,下划线和虚线,这是IDEA给我们的一些提示和警告,但是有时候我们并不需要,反而会让人看着很不爽,这里简单记录一下自己的调整方法,供其他的小 ...

  2. 学习bootstarp第一天

    一.下载bootstarp(https://v3.bootcss.com/),解压并将文件放入自己项目里去使用即可  二.安装bootstarp <!DOCTYPE html> <h ...

  3. Spring官网阅读(一)容器及实例化

    从今天开始,我们一起过一遍Spring的官网,一边读,一边结合在路神课堂上学习的知识,讲一讲自己的理解.不管是之前关于动态代理的文章,还是读Spring的官网,都是为了之后对Spring的源码做更全面 ...

  4. STM32 使用st-link调试遇到写保护 Flash Timeout 问题的解决思路

    本文介绍了如何解决STM32芯片Flash写保护导致无法下载程序,无法在线调试的问题:如果您遇到相同的问题,希望本文可以带来一些帮助: 如果本文帮到了您,请帮忙点个赞

  5. 一文搞懂HMM(隐马尔可夫模型)-转载

    写在文前:原博文地址:https://www.cnblogs.com/skyme/p/4651331.html 什么是熵(Entropy) 简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无 ...

  6. JDBC02 加载JDBC驱动 建立连接

    JDBC(Java Database Connection)为Java开发者使用数据库提供了统一的编程接口 sun公司由于不知道各个主流商用数据库的程序代码,因此无法自己写代码连接各个数据库,因此su ...

  7. pthon-安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示“This application failed to start because no Qt platform plugin could be initialized.Reinstalling the application the application may fix this program”

    最近学习python,安装网上教程一步一步的安装,网上很多帖子都写的非常详细,不由深深感慨多谢各位不辞辛苦的记录,指导着来自新入门的同学. 但是实际安装中,最理想莫过于一次性安装成功,但自己安装就出现 ...

  8. 我参与 Seata 开源项目的一些感悟

    丁老师在他的知识星球邀请我回答以下一个问题: 我觉得这个问题非常有意思,姑且把它贴到公众号这里,与大家分享一下我对这个问题的一些感悟. 感谢丁老师的邀请问答: 在这里我就简单说下,我这段时间参与 Se ...

  9. APP测试知识中的monkey测试

              了解了logging模块的应用 1)两种方式,1:日志级别函数 2:日志级别的四大组件来实现日志功能(日志流处理) 2)日志流处理日志logging四大组件:logger(日志器) ...

  10. webpack指南(一)HRM+Tree Shaking

    参考:https://www.cnblogs.com/PasserByOne/p/12084323.html https://blog.csdn.net/qq593249106/article/det ...