php curl 传递数据
2024-08-27 08:00:22
<?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());
最新文章
- web前端基础知识- Django基础
- gulp-rev:项目部署缓存解决方案----gulp系列(六)
- 暑假集训(2)第六弹 ----- Frosh Week(UVA11858)
- clearTimeout(timeoutfunc) 是否有必要执行
- hdu2489 Minimal Ratio Tree
- .net Ajax使用
- yaf框架刚开始遇到的问题
- FFmpeg的HEVC解码器源代码简单分析:概述
- RestFul风格API(Swagger)--从零开始Swagger
- 2 JAVA 项目名称前红色叹号如何解决
- 规模预算 之 FP法(作成中)
- 初学c# -- c#创建开机自启服调用外部交互式exe文件
- FreeMaker常用表达式
- Alpha 冲刺十
- Hadoop网站日志数据清洗——正则表达式实现
- SpringMVC的应用与工作流程解析
- 关于注入抽象类报could not autowire field的问题
- JavaSE基础之封装
- cout printf 莫明奇妙的崩溃问题
- CC2540 OSAL 学习其中原理,以及 给任务 添加 一个事件(定时发送串口消息)
热门文章
- 怎样理解window对象的几组位置大小属性
- [NOIP11.1模拟赛]补番报告
- C/C++读写文件的几种方法fstream fopen、fwrite()、fread()操作
- iOS - SceneKit 3D引擎初探
- JMeter测试clickhouse
- ubuntu18.04 下启动Android Studio报错KVM is required to run this AVD. /dev/kvm device: permission denied.
- ERROR 1524 (HY000): Plugin &#39;auth_socket&#39; is not loaded
- charles 右键菜单
- java项目中注解使用——整理
- docker 运行没有权限执行文件解决