php实现的Curl封装类Curl.class.php用法实例分析


Posted in PHP onSeptember 25, 2015

本文实例讲述了php实现的Curl封装类Curl.class.php用法。分享给大家供大家参考。具体如下:

<?php
//curl类
class Curl
{
 function Curl(){
  return true;
 }
 function execute($method, $url, $fields='', $userAgent='', $httpHeaders='', $username='', $password=''){
  $ch = Curl::create();
  if(false === $ch){
   return false;
  }
  if(is_string($url) && strlen($url)){
   $ret = curl_setopt($ch, CURLOPT_URL, $url);
  }else{
   return false;
  }
  //是否显示头部信息
  curl_setopt($ch, CURLOPT_HEADER, false);
  //
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  if($username != ''){
   curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);
  }
  $method = strtolower($method);
  if('post' == $method){
   curl_setopt($ch, CURLOPT_POST, true);
   if(is_array($fields)){
    $sets = array();
    foreach ($fields AS $key => $val){
     $sets[] = $key . '=' . urlencode($val);
    }
    $fields = implode('&',$sets);
   }
   curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
  }else if('put' == $method){
   curl_setopt($ch, CURLOPT_PUT, true);
  }
  //curl_setopt($ch, CURLOPT_PROGRESS, true);
  //curl_setopt($ch, CURLOPT_VERBOSE, true);
  //curl_setopt($ch, CURLOPT_MUTE, false);
  curl_setopt($ch, CURLOPT_TIMEOUT, 10);//设置curl超时秒数
  if(strlen($userAgent)){
   curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
  }
  if(is_array($httpHeaders)){
   curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeaders);
  }
  $ret = curl_exec($ch);
  if(curl_errno($ch)){
   curl_close($ch);
   return array(curl_error($ch), curl_errno($ch));
  }else{
   curl_close($ch);
   if(!is_string($ret) || !strlen($ret)){
    return false;
   }
   return $ret;
  }
 }
 function post($url, $fields, $userAgent = '', $httpHeaders = '', $username = '', $password = ''){
  $ret = Curl::execute('POST', $url, $fields, $userAgent, $httpHeaders, $username, $password);
  if(false === $ret){
   return false;
  }
  if(is_array($ret)){
   return false;
  }
  return $ret;
 }
 function get($url, $userAgent = '', $httpHeaders = '', $username = '', $password = ''){
  $ret = Curl::execute('GET', $url, '', $userAgent, $httpHeaders, $username, $password);
  if(false === $ret){
   return false;
  }
  if(is_array($ret)){
   return false;
  }
  return $ret;
 }
 function create(){
  $ch = null;
  if(!function_exists('curl_init')){
   return false;
  }
  $ch = curl_init();
  if(!is_resource($ch)){
   return false;
  }
  return $ch;
 }
}
?>

GET用法:

$curl = new Curl();
$curl->get('http://www.XXX.com/');

POST用法:

$curl = new Curl();
$curl->get('http://www.XXX.com/', 'p=1&time=0');

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
用PHP实现维护文件代码
Jun 14 PHP
由php if 想到的些问题
Mar 22 PHP
php学习之数据类型之间的转换代码
May 29 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
Aug 09 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
Jul 25 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
PHP文件缓存类示例分享
Jan 30 PHP
php实现字符串翻转的方法
Mar 27 PHP
基于PHP实现的多元线性回归模拟曲线算法
Jan 30 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
May 09 PHP
Laravel推荐使用的十个辅助函数
May 10 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
Jun 03 PHP
php实现的微信红包算法分析(非官方)
Sep 25 #PHP
PHP简单实现断点续传下载的方法
Sep 25 #PHP
分享3个php获取日历的函数
Sep 25 #PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 #PHP
常见PHP数据库解决方案分析介绍
Sep 24 #PHP
又十个超级有用的PHP代码片段
Sep 24 #PHP
PHP易混淆知识整理笔记
Sep 24 #PHP
You might like
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
ExtJS与PHP、MySQL实现存储的方法
2010/04/02 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
php实现12306余票查询、价格查询示例
2014/04/17 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
2010/05/04 Javascript
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
理解Javascript_05_原型继承原理
2010/10/13 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
jQuery+easyui中的combobox实现下拉框特效
2015/02/27 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
Python下使用Psyco模块优化运行速度
2015/04/05 Python
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
python机器学习之神经网络(三)
2017/12/20 Python
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
临床医学专业毕业生的自我评价
2013/10/17 职场文书
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
大学生社会实践自我鉴定
2014/03/24 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
化工工艺设计求职信
2014/06/25 职场文书
新闻稿格式范文
2015/07/18 职场文书
婚庆答谢词大全
2015/09/29 职场文书
房产销售员2015年终工作总结
2015/10/22 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手
2021/05/10 HTML / CSS
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技