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注入点构造代码
Jun 14 PHP
关于session在PHP5的配置文件中的详细设置参数说明
Apr 20 PHP
web server使用php生成web页面的三种方法总结
Oct 28 PHP
php判断ip黑名单程序代码实例
Feb 24 PHP
Smarty变量调节器失效的解决办法
Aug 20 PHP
php实现计算百度地图坐标之间距离的方法
May 05 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
PHP中快速生成随机密码的几种方式
Apr 17 PHP
PHP 传输会话curl函数的实例详解
Sep 12 PHP
ThinkPHP开发--使用七牛云储存
Sep 14 PHP
Laravel5.7 Eloquent ORM快速入门详解
Apr 12 PHP
Laravel统一错误处理为JSON的方法介绍
Oct 18 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
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
SWFObject Flash js调用类
2008/07/08 Javascript
JavaScript 高级语法介绍
2009/06/15 Javascript
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
在web中js实现类似excel的表格控件
2016/09/01 Javascript
js实现5秒倒计时重新发送短信功能
2017/02/05 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
微信小程序实现星级评价
2019/11/20 Javascript
js实现动态时钟
2020/03/12 Javascript
微信小程序实现拼图小游戏
2020/10/22 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
Python实现多线程下载文件的代码实例
2014/06/01 Python
使用Python的内建模块collections的教程
2015/04/28 Python
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
分享vim python缩进等一些配置
2018/07/02 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
使用python计算三角形的斜边例子
2020/04/15 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
Java的五个基础面试题
2016/02/26 面试题
博士研究生自我鉴定范文
2013/12/04 职场文书
生产车间班组长岗位职责
2014/01/06 职场文书
给儿子的表扬信
2014/01/15 职场文书
机电一体化专业毕业生自荐信
2014/06/19 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
求职简历自我评价2015
2015/03/10 职场文书
2016年暑假学生家长评语
2015/12/01 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL
Go语言入门exec的基本使用
2022/05/20 Golang
Java实现带图形界面的聊天程序
2022/06/10 Java/Android