<?php
header("Content-type: text/html; charset=utf-8"); /**
* curl 传递数据
*/
class curl {
private $curl_resource;
private $url = '';
private $input = array();
private $curl_error = '';
private $curl_info = '';
public $response;
public function __construct($url) {
$this->url = $url;
}
public function get_info() {
return array('url'=>$this->url,'input'=>$this->input,'curl_error'=>$this->curl_error,'curl_info'=>$this->curl_info);
}
private function connect() {
$this->curl_resource = curl_init();
curl_setopt($this->curl_resource, CURLOPT_HEADER, 0 ); // 过滤HTTP头
curl_setopt($this->curl_resource,CURLOPT_RETURNTRANSFER, 1);// 显示输出结果
curl_setopt($this->curl_resource, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
}
public function post($input) {
$this->connect();
$input = (array) $input;
$this->input = $input;
$input = http_build_query($input); //根据数组产生一个urlencode之后的请求字符串
curl_setopt($this->curl_resource, CURLOPT_URL, $this->url);
curl_setopt($this->curl_resource,CURLOPT_POST,true); // post传输数据
curl_setopt($this->curl_resource,CURLOPT_POSTFIELDS,$input); // post传输数据
$this->curl_error = curl_error($this->curl_resource);
$this->curl_info = curl_getinfo($this->curl_resource);
$this->response = curl_exec($this->curl_resource);
curl_close($this->curl_resource);
return $this->response;
}
public function get($input) {
$this->connect();
$input = (array) $input;
$this->input = $input;
$input = $this->url.'?'.http_build_query($input);
curl_setopt($this->curl_resource, CURLOPT_URL, $input);
$this->response = curl_exec($this->curl_resource);
curl_close($this->curl_resource);
return $this->response;
}
} $curl = new curl('http://www.test.com/index.php');
print_r($curl->post('post传递数据'));
var_dump($curl->get_info());
print_r($curl->get('get传递数据'));
var_dump($curl->get_info());

最新文章

  1. web前端基础知识- Django基础
  2. gulp-rev:项目部署缓存解决方案----gulp系列(六)
  3. 暑假集训(2)第六弹 ----- Frosh Week(UVA11858)
  4. clearTimeout(timeoutfunc) 是否有必要执行
  5. hdu2489 Minimal Ratio Tree
  6. .net Ajax使用
  7. yaf框架刚开始遇到的问题
  8. FFmpeg的HEVC解码器源代码简单分析:概述
  9. RestFul风格API(Swagger)--从零开始Swagger
  10. 2 JAVA 项目名称前红色叹号如何解决
  11. 规模预算 之 FP法(作成中)
  12. 初学c# -- c#创建开机自启服调用外部交互式exe文件
  13. FreeMaker常用表达式
  14. Alpha 冲刺十
  15. Hadoop网站日志数据清洗——正则表达式实现
  16. SpringMVC的应用与工作流程解析
  17. 关于注入抽象类报could not autowire field的问题
  18. JavaSE基础之封装
  19. cout printf 莫明奇妙的崩溃问题
  20. CC2540 OSAL 学习其中原理,以及 给任务 添加 一个事件(定时发送串口消息)

热门文章

  1. 怎样理解window对象的几组位置大小属性
  2. [NOIP11.1模拟赛]补番报告
  3. C/C++读写文件的几种方法fstream fopen、fwrite()、fread()操作
  4. iOS - SceneKit 3D引擎初探
  5. JMeter测试clickhouse
  6. ubuntu18.04 下启动Android Studio报错KVM is required to run this AVD. /dev/kvm device: permission denied.
  7. ERROR 1524 (HY000): Plugin &#39;auth_socket&#39; is not loaded
  8. charles 右键菜单
  9. java项目中注解使用——整理
  10. docker 运行没有权限执行文件解决