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 相关文章推荐
PHP register_shutdown_function函数的深入解析
Jun 03 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 PHP
采用thinkphp自带方法生成静态html文件详解
Jun 13 PHP
PHP两种去掉数组重复值的方法比较
Jun 19 PHP
php中函数前加&amp;符号的作用分解
Jul 08 PHP
推荐5款跨平台的PHP编辑器
Dec 25 PHP
微信获取用户地理位置信息的原理与步骤
Nov 12 PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
May 17 PHP
yii框架无限极分类的实现方法
Apr 08 PHP
thinkPHP实现的省市区三级联动功能示例
May 05 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
May 11 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 新手入门教程
2009/08/03 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
Laravel与CI框架中截取字符串函数
2016/05/08 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
PHP实现计算器小功能
2020/08/28 PHP
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
jquery高级编程的最佳实践详解
2014/03/23 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
微信小程序(应用号)简单实例应用及实例详解
2016/09/26 Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
2019/06/05 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
2019/04/01 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
2019/05/29 Python
python pytest进阶之fixture详解
2019/06/27 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
Python如何实现邮件功能
2020/05/27 Python
降低python版本的操作方法
2020/09/11 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
2021/03/04 Python
详解canvas绘图时遇到的跨域问题
2018/03/22 HTML / CSS
美国领先的眼镜和太阳镜在线零售商:Glasses.com
2019/08/26 全球购物
简历中个人求职的自我评价模板
2013/11/29 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
党支部公开承诺践诺书
2014/03/28 职场文书
拉歌口号大全
2014/06/13 职场文书
幼师辞职信范文
2015/02/27 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
通讯稿格式及范文
2015/07/22 职场文书
千万级用户系统SQL调优实战分享
2022/03/03 MySQL