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());
时间: 2024-11-05 06:10:57

php curl 传递数据的相关文章

用Qt写软件系列六:博客园客户端的设计与实现(用Fiddler抓包,用CURL提交数据,用htmlcxx解析HTML)

引言 博客园是本人每日必逛的一个IT社区.尽管博文以.net技术居多,但是相对于CSDN这种业务杂乱.体系庞大的平台,博客园的纯粹更得我青睐.之前在园子里也见过不少讲解为博客园编写客户端的博文.不过似乎都是移动端的技术为主.这篇博文开始讲讲如何在PC端编写一个博客园客户端程序.一方面是因为本人对于博客园的感情:另一方面也想用Qt写点什么东西出来.毕竟在实践中学习收效更快. 登录过程分析 登录功能是一个客户端程序比不可少的功能.在组装Http数据包发送请求之前,我们得看看整个登录是怎样一个过程.F

Vue.js-----轻量高效的MVVM框架(九、组件利用Props传递数据)

#使用props传递数据 html:传递普通的字符串 <h3>#使用props传递数据</h3> <div id="dr01"> <div>组件实例的作用域是孤立的.这意味着不能并且不应该在子组件的模板内直接引用父组件的数据.可以使用 props 把数据传给子组件.</div> <br /> <child msg="hello, vue.js!"></child> <

在activity之间通过静态变量传递数据

在activity之间通过静态变量传递数据 一.简介 主要作用:解决intent不能传递非序列化的对象 评价:简单方便,不过intent方式更加简单和方便 二.具体操作 1.在传输数据的页面弄好数据,传递给接收数据的页面 Obj1 obj=new Obj1("fry",22); Activity01.obj=obj; 2.在接收数据的页面显示数据 输出obj即可 3.具体代码 传输数据的页面 Intent intent=new Intent();//初始化intent intent.s

Android第一行代码学习笔记六---Intent向活动传递数据

@1.向下一个活动传递数据: Intent提供了一系列putExtra()方法的重载,可以把我们想要传递的数据暂存在Intent中,启动了另一个活动后,只需把这些数据再从Intent中取出就可以了,比如firstActivity中有一个字符串要传递到secondActivity中,修改firstActivity中按钮点击事件,代码可以这样编写: button.setOnClickListener(new View.OnClickListener() { public void onClick(V

Android学习之Intent传递数据

Intent在Activity中的作用主要是有两个: 1.启动目标Activity 2.传递数据 Intent在传递数据时分两种情况:向下一个Activity传递数据和从下一个Activity返回数据. 一.向下一个Activity传递数据主要是利用Intent作为“信使”来调用, 原Activity需要创建一个intent,并用putExtra(键,值)方法向intent中放入需要传递的信息,然后启动. public void onClick(View view){ String msg =

控制器向视图传递数据

1.ViewData:可存放任意类型数据,使用时需要转换,ViewData[“Info”]="hello",适合传递单个数据: 2.ViewBag:是对ViewData的封装,可读取ViewData保存的数据,反之亦然,ViewBag.stu=objStudent: 3.TempData:可跨视图,跨控制器传,跨动作方法之间传递数据,使用时需要转换数据类型,TempData["admin"]=objAdmin;临时保  存数据,一旦使用,则被清除: 4.View()

iOS:切换视图时,反向传递数据方法一:通知

通知方式: 1.有一个(单例)通知中心,负责管理iOS中的所有通知 2.需要获取某种通知,必须注册成为观察者(订阅) 3.不再需要取某种通知时,要取消注册. 4.你可以向通知中心发送某种通知,通知中心会转发给相应的观察者(订阅者). 将第一个控制器和第二个控制器以modal方式联接后,每一个控制器和各自的类相关联,同时将segue的idetifier标识设置一个名字,正向传数据时,需要根据segue的标识符进行唯一的识别.反向传数据时,采用通知的方法. 1.所有的文件: 2.第一个控制器Firs

自定义实体类在三层架构之间传递数据

自定义实体类是专门承载业务实体数据的类,一般将方法分离出来,只包含属性和字段的定义.每个实体类对应数据库中的一个表,每个属性对应表中的一个相应的字段.使用实体类属于面向对象编程的思想,将每个表封装成对应的类. 1. 为什么使用自定义实体类 (1)使程序更加灵活.如果数据库发生了更改,只需要修改数据实体类的代码,其他层的代码修改量很小. (2)使用面向对象思想将数据库中的表抽象为类,消除了关系数据与类的差别,使程序维护和扩展更方便. (3)更有利于分层架构设计. 2. 使用自定义实体类作为三层架构

【Lua】LWT后台用JSON与 ExtJS传递数据

要完成目录树的构建,需要前台ExtJS构筑页面,后台处理逻辑,中间由JSON传递数据. 首先搭建后台环境: 1 require "httpd" 2 require "lfs" 3 4 request, args = ... 5 6 local s = {root = { 7 text = "rootNode", 8 expanded = true, 9 children = { 10 { 11 text = 'book1', 12 leaf =