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将网址字符串转换成超链接(网址或email)
May 25 PHP
php Hex RGB颜色值互换的使用
May 10 PHP
php中strtotime函数用法详解
Nov 15 PHP
php绘制一个扇形的方法
Jan 24 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
php中删除、清空session的方式总结
Oct 09 PHP
php实现在线通讯录功能(附源码)
May 13 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
Oct 08 PHP
Android AsyncTack 异步任务实例详解
Nov 02 PHP
PHP命令空间namespace及use的用法小结
Nov 27 PHP
php函数式编程简单示例
Aug 08 PHP
PHP Web表单生成器案例分析
Jun 02 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中图片等比缩放的实例
2013/03/24 PHP
PHP读取XML格式文件的方法总结
2017/02/27 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
javascript parseInt 大改造
2009/09/27 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
2013/08/28 Javascript
javascript实现根据时间段显示问候语的方法
2015/06/18 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
2016/04/08 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
2016/11/28 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
[00:35]可解锁地面特效
2018/12/20 DOTA
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
Python实现的中国剩余定理算法示例
2017/08/05 Python
Python3.5 处理文本txt,删除不需要的行方法
2018/12/10 Python
Python正则匹配判断手机号是否合法的方法
2020/12/09 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
python 实现查询Neo4j多节点的多层关系
2019/12/23 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
详解background属性的8个属性值(面试题)
2020/11/02 HTML / CSS
房地产销售员的自我评价分享
2013/12/04 职场文书
出国留学介绍信
2014/01/13 职场文书
跳槽求职信范文
2014/05/26 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
开票员岗位职责
2015/02/12 职场文书
中秋节慰问信
2015/02/15 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
php引用传递
2021/04/01 PHP
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL