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 破解防盗链图片函数
Dec 09 PHP
PHP 定界符 使用技巧
Jun 14 PHP
PHP DataGrid 实现代码
Aug 12 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
Aug 15 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
PHP实现数组递归转义的方法
Aug 28 PHP
PHP+MySQL插入操作实例
Jan 21 PHP
PHP生成器简单实例
May 13 PHP
php自定义分页类完整实例
Dec 25 PHP
PHP实现的一致性Hash算法详解【分布式算法】
Mar 31 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
Jun 12 PHP
laravel ajax curd 搜索登录判断功能的实现
Apr 17 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&amp;java(一)
2006/10/09 PHP
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
2014/04/08 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
php实现约瑟夫问题的方法小结
2015/03/23 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
laravel 模型查询按照whereIn排序的示例
2019/10/16 PHP
jQuery实现单行文字间歇向上滚动源代码
2013/06/02 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
小程序实现密码输入框
2020/11/16 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
python冒泡排序算法的实现代码
2013/11/21 Python
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
Python 求数组局部最大值的实例
2019/11/26 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
Python-jenkins 获取job构建信息方式
2020/05/12 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
HTML5新增加的功能详解
2016/09/05 HTML / CSS
怎样写好自我评价呢?
2014/02/16 职场文书
创新社会管理心得体会
2014/09/12 职场文书
灵山大佛导游词
2015/02/04 职场文书
小学主题班会教案
2015/08/17 职场文书
2019年工作总结范文
2019/05/21 职场文书