php curl 传递数据
<?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());
php curl 传递数据的更多相关文章
- 通过 curl 传递数据
方法一(若为post方式,只适用于一维数组) /** * curl发送htpp请求 * 可以发送https,http,get方式,post方式,post数据发送 */ public function ...
- GET来传递数据的实例
实例 下面实例是一点典型的使用GET来传递数据的实例: 客户端请求: GET /hello.txt HTTP/1.1 User-Agent: curl/7.16.3 libcurl/7.16.3 Op ...
- Android中Service通信(一)——启动Service并传递数据
启动Service并传递数据的小实例(通过外界与服务进行通信): 1.activity_main.xml: <EditText android:layout_width="match_ ...
- angular input标签只能单向传递数据的问题
angularjs input标签只能单向传递数据的问题 <ion-view title = "{{roomName}}" style = "height:90%; ...
- activity与fragment之间传递数据
总结:无论是activity给fragment传递数据,还是fragment给activity传递数据,都把activity和fragment都当做一个普通的对象,调用它的方法,传递参数. 1.Fra ...
- android跟服务器使用json传递数据
最近在做项目,使用了json传递数据,把服务器对象转换成json字符串返回,android使用gson包解析json字符串变成对象. 1.服务器代码编写,我这边是在servlet里面 Peron pe ...
- 小菜学习Winform(五)窗体间传递数据
前言 做项目的时候,winfrom因为没有B/S的缓存机制,窗体间传递数据没有B/S页面传递数据那么方便,今天我们就说下winfrom中窗体传值的几种方式. 共有字段传递 共有字段传递实现起来很方便, ...
- Intent(三)向下一个活动传递数据
向下传递活动很简单,可以我采用putExtra()方法的重载,把我们想要传递的数据暂时放在intent中,启动活动时从这里取就可以了. 首先我们在MainActivity(主活动)显式声明intent ...
- MVC学习系列3--怎么从控制器向视图传递数据
在MVC中,从控制器到视图,传递数据,可以使用 ViewData 和 ViewBag:同样从视图到控制器,传递数据,可以使用Post,QueryString,或者隐藏域:最后从控制器到控制器,传递数据 ...
随机推荐
- IDEA解决 lombok 编译报错 cannot resolve method set/get 方法
首先关于lombok的介绍 https://blog.csdn.net/ThinkWon/article/details/101392808 总之,就是通过添加注解的方式,不需要为类编写getter或 ...
- rem em min-width: 30em 的意思
30em=30rem=30x16px=480px @media only screen and (min-width:30 em){ }
- react-native 沉浸式状态栏
使用StatusBar即可实现沉浸式,但是必须把背景色设置为透明.否则如果有不同页面的头部颜色不一样的话,导航栏的颜色动画会很怪异,不会是跟着页面一起动画. <StatusBar barStyl ...
- BPM FlowPortal 开发环境及发布环境的配置
开启开发模式 开发时应设置防缓存和调试信息输出. 开发后发布 开发完成后正式使用时,除了对以上各项做相反设置外,还需设置web.config中的JSVersion,使每个用户都能自动下载最新版的js文 ...
- linux查看日志报错
查看运行时错误: tail -f catalina.out | grep -C 10 'Exception' 10是行数: 单引号里面的是要查找的关键字:
- bootstrap-table分页
首先引用css: <link rel="stylesheet" type="text/css" href="css/bootstrap.css& ...
- java web 监控cpu、内存等。hyperic-sigar
用到一个插件hyperic-sigar 1:下载hyperic-sigar后解压,把sigar-amd64-winnt.dll(64位机器,32位用sigar-x86-winnt.dll)放到你本机的 ...
- linux uniq命令用法
uniq命令: 对指定的ASCII文件或标准输入进行唯一性检查,以判断文本文件中重复出现的行,常用于分析日志:查看tcp各个状态连接数,ip或域名连接数排名等等场景,一般与 sort 命令结合使用. ...
- Qt中C++与QML交互
###main.c部分int main(int argc, char *argv[]){ QString info1 = "xxxxxxxxxxx"; QString ...
- Luogu P1294 高手去散步
Luogu P1294 高手去散步 因为数据较小,所以用邻接矩阵存图即可. 将1号点到$t$号点分别设为起点,深搜遍历路线,开一个$vis$数组,记录每一个点是否被访问过.每次求出从当前起点出发的最大 ...