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程序--记数器
Oct 09 PHP
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
Dec 31 PHP
PHP教程 基本语法
Oct 23 PHP
PHP zlib扩展实现页面GZIP压缩输出
Jun 17 PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
LotusPhp笔记之:Cookie组件的使用详解
May 06 PHP
PHP APC的安装与使用详解
Jun 13 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
Dec 10 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
May 18 PHP
PHP Ajax实现无刷新附件上传
Aug 17 PHP
php array_values 返回数组的所有值详解及实例
Nov 12 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 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
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
将数组写入txt文件 var_export
2009/04/21 PHP
一个PHP分页类的代码
2011/05/18 PHP
优化PHP程序的方法小结
2012/02/23 PHP
php弹出对话框实现重定向代码
2014/01/23 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
关于跨站脚本攻击问题
2011/12/22 Javascript
如何在一个页面显示多个百度地图
2013/04/07 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
JS实现的相册图片左右滚动完整实例
2016/11/23 Javascript
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
Python格式化日期时间操作示例
2018/06/28 Python
python list格式数据excel导出方法
2018/10/31 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
python实现猜拳小游戏
2020/04/05 Python
运行Python编写的程序方法实例
2020/10/21 Python
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
销售高级职员求职信
2013/10/29 职场文书
高校教师思想汇报
2014/01/11 职场文书
《伯牙绝弦》教学反思
2014/03/02 职场文书
岗位竞聘书范文
2014/03/31 职场文书
基层党员群众路线整改措施及努力方向
2014/10/28 职场文书
北京导游词
2015/02/12 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
MySql分区类型及创建分区的方法
2022/04/13 MySQL