浅谈PHP封装CURL


Posted in PHP onMarch 06, 2019

CURL是一个非常强大的开源库,支持很多协议,包括HTTP、FTP、TELNET等,我们使用它来发送HTTP请求。它给我 们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS。CURL可以根据URL前缀是“HTTP” 还是“HTTPS”自动选择是否加密发送内容。

使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤:
1.初始化连接句柄;
2.设置CURL选项;
3.执行并获取结果;
4.释放VURL连接句柄。

PHP.ini扩展开启

浅谈PHP封装CURL

//使用curl发送请求 第一个参数发送的url地址,第二个参数是否发送post请求,默认是发送get请求,第三个就是请求的参数,第四个参数是否发送https
 function curl_request($url, $post=false, $param=[], $https = false)
 {
 //curl_init 初始化的时候传递url
 $ch = curl_init($url);
 //curl_setopt 设置一些请求选项,当然get是默认的也是最好处理的
 if($post){
  //设置请求方式和请求参数,post请求,要设置的类型就是bool型的,那么我们肯定是启用的设置为true,POSTFILEDS是传递的参数,它的第三个参数就是传递的参数可以为一个数组类型的也就是我们的param
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
 }
 // https请求,默认会进行验证 
 if($https){
  //禁止从服务器端 验证客户端的证书,注意7.10开始默认为开启验证的!!!
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 }
 //curl_exec 执行请求会话(发送请求)
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 $res = curl_exec($ch);
 //curl_close 关闭请求会话
 curl_close($ch);
 return $res;
 }

官网说明:

1、CURLOPT_POST
TRUE 时会发送 POST 请求,类型为:application/x-www-form-urlencoded,是 HTML 表单提交时最常见的一种。

2、CURLOPT_POSTFIELDS
操作来发送。要发送文件,在文件名前面加上@前缀并使用完整路径。文件类型可在文件名后以 ';type=mimetype' 的格式指定。这个参数可以是 urlencoded 后的字符串,类似'para1=val1¶2=val2&...',也可以使用一个以字段名为键值,字段数据为值的数组。如果value是一个数组,Content-Type头将会被设置成multipart/form-data。  从 PHP 5.2.0 开始,使用 @ 前缀传递文件时,value 必须是个数组。  从 PHP 5.5.0 开始, @ 前缀已被废弃,文件可通过 CURLFile 发送。设置 CURLOPT_SAFE_UPLOAD 为 TRUE 可禁用 @ 前缀发送文件,以增加安全性。 

3、CURLOPT_SSL_VERIFYPEER
FALSE 禁止 cURL 验证对等证书(peer'scertificate)。要验证的交换证书可以在 CURLOPT_CAINFO 选项中设置,或在 CURLOPT_CAPATH中设置证书目录

以上所述是小编给大家介绍的PHP如何封装CURL详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
搜索和替换文件或目录的一个好类--很实用
Oct 09 PHP
php生成随机数或者字符串的代码
Sep 05 PHP
PHP 单引号与双引号的区别
Nov 24 PHP
Ajax+PHP边学边练 之五 图片处理
Dec 03 PHP
PHP类的使用 实例代码讲解
Dec 28 PHP
php模板中出现空行解决方法
Mar 08 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
Jul 01 PHP
跟我学Laravel之视图 & Response
Oct 15 PHP
php实现ip白名单黑名单功能
Mar 12 PHP
PHP执行linux命令常用函数汇总
Feb 02 PHP
PHP实现bitmap位图排序与求交集的方法
Jul 28 PHP
Yaf框架封装的MySQL数据库操作示例
Mar 06 #PHP
PHP实现的敏感词过滤方法示例
Mar 06 #PHP
详解PHP 二维数组排序保持键名不变
Mar 06 #PHP
PHP获取ttf格式文件字体名的方法示例
Mar 06 #PHP
php ajax confirm 删除实例详解
Mar 06 #PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 #PHP
一次因composer错误使用引发的问题与解决
Mar 06 #PHP
You might like
深入了解php4(1)--回到未来
2006/10/09 PHP
PHP数字格式化
2006/12/06 PHP
php class类的用法详细总结
2013/10/17 PHP
完美解决thinkphp验证码出错无法显示的方法
2014/12/09 PHP
PHP处理Ajax请求与Ajax跨域问题
2017/02/13 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
javascript 写类方式之五
2009/07/05 Javascript
JavaScript游戏之优化篇
2010/11/08 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
微信小程序getPhoneNumber获取用户手机号
2017/09/29 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
Python with用法实例
2015/04/14 Python
python list排序的两种方法及实例讲解
2017/03/20 Python
python实现BackPropagation算法
2017/12/14 Python
TensorFlow变量管理详解
2018/03/10 Python
python实现图书馆研习室自动预约功能
2018/04/27 Python
python定时关机小脚本
2018/06/20 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
python的列表List求均值和中位数实例
2020/03/03 Python
keras的三种模型实现与区别说明
2020/07/03 Python
python读取excel数据绘制简单曲线图的完整步骤记录
2020/10/30 Python
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
我的理想演讲稿
2014/04/30 职场文书
2014年新教师工作总结
2014/11/08 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
javascript Number 与 Math对象的介绍
2021/11/17 Javascript
上个世纪50年代的可穿戴技术:无线电帽子
2022/02/18 无线电
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android