PHP封装cURL工具类与应用示例


Posted in PHP onJuly 01, 2019

本文实例讲述了PHP封装cURL工具类。分享给大家供大家参考,具体如下:

CurlUtils工具类:

<?php
/**
 * cURL请求工具类
 */
class CurlUtils {
  private $ch;//curl资源对象
  /**
   * 构造方法
   * @param string $url 请求的地址
   * @param int $responseHeader 是否需要响应头信息
   */
  public function __construct($url,$responseHeader = 0){
    $this->ch = curl_init($url);
    curl_setopt($this->ch,CURLOPT_RETURNTRANSFER,1);//设置以文件流的形式返回
    curl_setopt($this->ch,CURLOPT_HEADER,$responseHeader);//设置响应头信息是否返回
  }
  /**
   * 析构方法
   */
  public function __destruct(){
    $this->close();
  }
  /**
   * 添加请求头
   * @param array $value 请求头
   */
  public function addHeader($value){
    curl_setopt($this->ch, CURLOPT_HTTPHEADER, $value);
  }
  /**
   * 发送请求
   * @return string 返回的数据
   */
  private function exec(){
    return curl_exec($this->ch);
  }
  /**
   * 发送get请求
   * @return string 请求返回的数据
   */
  public function get(){
    return $this->exec();
  }
  /**
   * 发送post请求
   * @param arr/string $value 准备发送post的数据
   * @param boolean $https 是否为https请求
   * @return string    请求返回的数据
   */
  public function post($value,$https=true){
    if($https){
      curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, FALSE);
      curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    }
    curl_setopt($this->ch,CURLOPT_POST,1);//设置post请求
    curl_setopt($this->ch,CURLOPT_POSTFIELDS,$value);
    return $this->exec();
  }
  /**
   * 关闭curl句柄
   */
  private function close(){
    curl_close($this->ch);
  }
}

调用实例:

face++的人脸识别接口

$curl = new CurlUtils("https://api-cn.faceplusplus.com/facepp/v3/detect");//创建curl对象
$value = ['api_key'=>'4Y7GS2sAPGEl-BtQlNw5Iqtq5jGOn87z','api_secret'=>'oQnwwJhS2mcm4vflKvgm972up9sLN8zj','image_url'=>'http://avatar.csdn.net/9/7/5/1_baochao95.jpg','return_attributes'=>'gender,age,glass'];//准备post的值
echo $curl->post($value);//发送请求

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
福利彩票幸运号码自动生成器
Oct 09 PHP
服务器web工具 php环境下
Dec 29 PHP
PHP 安全检测代码片段(分享)
Jul 05 PHP
PHP IE中下载附件问题解决方法
Jan 07 PHP
PHP中使用sleep函数实现定时任务实例分享
Aug 21 PHP
php实现字符串翻转的方法
Mar 27 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
Jun 13 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
简单PHP会话(session)说明介绍
Aug 21 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
Oct 22 PHP
利用PHP计算有多少小于当前数字的数字方法示例
Aug 26 PHP
PHP session垃圾回收机制实例分析
Jun 28 #PHP
PHP常用的类封装小结【4个工具类】
Jun 28 #PHP
php实现网页上一页下一页翻页过程详解
Jun 28 #PHP
php输出控制函数和输出函数生成静态页面
Jun 27 #PHP
php生成静态页面并实现预览功能
Jun 27 #PHP
PHP创建对象的六种方式实例总结
Jun 27 #PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 #PHP
You might like
PHP 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
php从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
2款PHP无限级分类实例代码
2015/11/11 PHP
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
2010/03/07 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
vue中element 上传功能的实现思路
2018/07/06 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
[03:03]2014DOTA2西雅图国际邀请赛 Alliance战队巡礼
2014/07/07 DOTA
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
Python实现12306火车票抢票系统
2019/07/04 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
Python实现上下文管理器的方法
2020/08/07 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
纽约和芝加哥当天送花:Ode à la Rose
2019/07/05 全球购物
校友会欢迎辞
2014/01/13 职场文书
环保口号大全
2014/06/12 职场文书
公安学专业求职信
2014/07/27 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
模范教师事迹材料
2014/12/16 职场文书
晚会闭幕词
2015/01/28 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
低门槛开发iOS、Android、小程序应用的前端框架详解
2021/10/16 Javascript