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 相关文章推荐
PR值查询 | PageRank 查询
Dec 20 PHP
PHP在字符串中查找指定字符串并删除的代码
Oct 02 PHP
探讨PHP中this,self,parent的区别详解
Jun 08 PHP
CodeIgniter图像处理类的深入解析
Jun 17 PHP
PHP实现取得HTTP请求的原文
Aug 18 PHP
php操作xml入门之xml基本介绍及xml标签元素
Jan 23 PHP
php控制文件下载速度的方法
Mar 24 PHP
PHP实现根据图片色界在不同位置加水印的方法
Aug 08 PHP
php简单实现单态设计模式的方法分析
Jul 28 PHP
mysqli扩展无法在PHP7下升级问题的解决
Sep 10 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
Apr 06 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
Nov 23 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
正则表达式语法
2006/10/09 Javascript
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
关于COOKIE个数与大小的问题
2011/01/17 Javascript
js确定对象类型方法
2012/03/30 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
分享一个自己动手写的jQuery分页插件
2014/08/28 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
jQuery网页右侧广告跟随滚动代码分享
2020/04/20 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
vue父组件向子组件传递多个数据的实例
2018/03/01 Javascript
详解vue axios二次封装
2018/07/22 Javascript
vue-router的HTML5 History 模式设置
2018/09/08 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
python快速排序代码实例
2013/11/21 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
python实现用类读取文件数据并计算矩形面积
2020/01/18 Python
python列表的逆序遍历实现
2020/04/20 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
selenium如何定位span元素的实现
2021/01/13 Python
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
Camille Jewelry官网:现代女性时尚首饰
2019/07/07 全球购物
应聘教师自荐书
2014/06/16 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
2014年环保局工作总结
2014/12/11 职场文书
幼儿园母亲节活动总结
2015/02/10 职场文书
七一慰问简报
2015/07/20 职场文书
一文搞懂Golang 时间和日期相关函数
2021/12/06 Golang