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 相关文章推荐
discuz authcode 经典php加密解密函数解析
Jul 12 PHP
php中获取远程客户端的真实ip地址的方法
Aug 03 PHP
PHP读取PDF内容配合Xpdf的使用
Nov 24 PHP
Yii核心组件AssetManager原理分析
Dec 02 PHP
php文件系统处理方法小结
May 23 PHP
php获取远程图片并下载保存到本地的方法分析
Oct 08 PHP
PHP常用函数总结(180多个)
Dec 25 PHP
php实现微信分享朋友链接功能
Feb 18 PHP
Laravel框架实现简单的学生信息管理平台案例
May 07 PHP
提高Laravel应用性能方法详解
Jun 24 PHP
php函数式编程简单示例
Aug 08 PHP
php去除deprecated的实例方法
Nov 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
BBS(php &amp; mysql)完整版(一)
2006/10/09 PHP
PHP 批量更新网页内容实现代码
2010/01/05 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
2015/04/15 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
javascript之大字符串的连接的StringBuffer 类
2007/05/08 Javascript
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
使用jQuery同时控制四张图片的伸缩实现代码
2013/04/19 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
基于vue实现swipe分页组件实例
2017/05/25 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
2017/09/10 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
Nginx 配置多站点vhost 的方法
2018/01/07 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
Python模块的加载讲解
2019/01/15 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
python集成开发环境配置(pycharm)
2020/02/14 Python
Python处理PDF与CDF实例
2020/02/26 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
《画风》教学反思
2014/04/16 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
详解Python常用的魔法方法
2021/06/03 Python
html输入两个数实现加减乘除功能
2021/07/01 HTML / CSS