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与javascript对多项选择的处理
Oct 09 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
Apr 02 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
May 07 PHP
php中将数组转成字符串并保存到数据库中的函数代码
Sep 29 PHP
PHP中round()函数对浮点数进行四舍五入的方法
Nov 19 PHP
PHP实现的简单网络硬盘
Jul 29 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
Mar 21 PHP
php getcwd与dirname(__FILE__)区别详解
Sep 24 PHP
php实现数据库的增删改查
Feb 26 PHP
PHP实现生成数据字典功能示例
May 24 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
Apr 09 PHP
PHP使用CURL实现下载文件功能示例
Jun 03 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
《被神捡到的男人》动画化计划进行中!
2020/03/06 日漫
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
基于PHP array数组的教程详解
2013/06/05 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
js滚动条多种样式,推荐
2007/02/05 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
JS触摸事件、手势事件详解
2017/05/04 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中的自省(反射)详解
2015/06/02 Python
在Python的Django框架中创建语言文件
2015/07/27 Python
python 编程之twisted详解及简单实例
2017/01/28 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
Flask配置Cors跨域的实现
2019/07/12 Python
python实现超市商品销售管理系统
2019/10/25 Python
python argparse传入布尔参数false不生效的解决
2020/04/20 Python
python实现猜单词游戏
2020/05/22 Python
给海归自荐信的建议
2013/12/13 职场文书
学校消防安全制度
2014/01/30 职场文书
关于抽烟的检讨书
2014/02/25 职场文书
高二学生评语大全
2014/04/25 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
庆祝国庆节标语
2014/10/09 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书