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 配置文件中open_basedir选项作用
Jul 19 PHP
PHP 一个页面执行时间类代码
Mar 05 PHP
php自动获取字符串编码函数mb_detect_encoding
May 31 PHP
Ping服务的php实现方法,让网站快速被收录
Feb 04 PHP
php不用正则验证真假身份证
Nov 06 PHP
codeigniter框架批量插入数据
Jan 09 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
php运行时动态创建函数的方法
Mar 16 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
laravel自定义分页的实现案例offset()和limit()
Oct 15 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 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编写的图片验证码类文件分享
2016/06/06 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
javascript数组去掉重复
2011/05/12 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
2014/05/04 Javascript
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
实例分析javascript中的call()和apply()方法
2014/11/28 Javascript
js实现仿Windows风格选项卡和按钮效果实例
2015/05/13 Javascript
jquery判断复选框选中状态以及区分attr和prop
2015/12/18 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
jQuery插件jsonview展示json数据
2018/05/26 jQuery
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
Python 基础之字符串string详解及实例
2017/04/01 Python
Django rest framework基本介绍与代码示例
2018/01/26 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
scrapy头部修改的方法详解
2020/12/06 Python
CSS3实现自定义Checkbox特效实例代码
2017/04/24 HTML / CSS
关于Assembly命名空间的三个面试题
2015/07/23 面试题
2014年三万活动总结
2014/04/26 职场文书
党员十八大心得体会
2014/09/12 职场文书
北京故宫的导游词
2015/01/31 职场文书
幼儿园中班教师个人工作总结
2015/02/06 职场文书
家庭教育教师培训学习体会
2016/01/14 职场文书
2019同学聚会主持词
2019/05/06 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python