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 获取页面中指定内容的实现类
Jan 23 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 PHP
两种设置php载入页面时编码的方法
Jul 29 PHP
php计算两个日期相差天数的方法
Mar 14 PHP
以文件形式缓存php变量的方法
Jun 26 PHP
PHP中filter函数校验数据的方法详解
Jul 31 PHP
php采用session实现防止页面重复刷新
Dec 24 PHP
php版微信公众平台实现预约提交后发送email的方法
Sep 26 PHP
PHP格式化显示时间date()函数代码
Oct 03 PHP
php中的buffer缓冲区用法分析
May 31 PHP
Laravel + Elasticsearch 实现中文搜索的方法
Feb 02 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 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
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
PHP使用ODBC连接数据库的方法
2015/07/18 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
2016/12/05 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
Javascript变量函数浅析
2011/09/02 Javascript
图片延迟加载的实现代码(模仿懒惰)
2013/03/29 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
2017/09/20 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
Vue+mui实现图片的本地缓存示例代码
2018/05/24 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
python处理中文编码和判断编码示例
2014/02/26 Python
Python中join和split用法实例
2015/04/14 Python
Python base64编码解码实例
2015/06/21 Python
Python语言的面相对象编程方式初步学习
2016/03/12 Python
Python学习笔记之if语句的使用示例
2017/10/23 Python
python字符串string的内置方法实例详解
2018/05/14 Python
python安装twisted的问题解析
2018/08/21 Python
python递归下载文件夹下所有文件
2019/08/31 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
python使用opencv在Windows下调用摄像头实现解析
2019/11/26 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
优秀演讲稿范文
2013/12/29 职场文书
国际贸易个人求职信范文
2014/01/04 职场文书
应届毕业生自荐信例文
2014/02/26 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
期中考试后的感想
2015/08/07 职场文书