PHP中使用cURL实现Get和Post请求的方法


Posted in PHP onMarch 13, 2013

1.cURL介绍

cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 库。本文将介绍 cURL 的一些高级特性,以及在PHP中如何运用它。

2.基本结构

在学习更为复杂的功能之前,先来看一下在PHP中建立cURL请求的基本步骤:

(1)初始化

curl_init()

(2)设置变量

curl_setopt() 。最为重要,一切玄妙均在此。有一长串cURL参数可供设置,它们能指定URL请求的各个细节。要一次性全部看完并理解可能比较困难,所以今天我们只试一下那些更常用也更有用的选项。

(3)执行并获取结果

curl_exec()

(4)释放cURL句柄

curl_close()

3.cURL实现Get和Post

3.1 Get方式实现

//初始化

$ch = curl_init();


//设置选项,包括URL

curl_setopt($ch, CURLOPT_URL, "https://3water.com");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

//执行并获取HTML文档内容

$output = curl_exec($ch);

//释放curl句柄

curl_close($ch);

//打印获得的数据

print_r($output);

3.2 Post方式实现
$url = "http://localhost/web_services.php";

$post_data = array ("username" => "bob","key" => "12345");


$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// post数据

curl_setopt($ch, CURLOPT_POST, 1);

// post的变量

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

$output = curl_exec($ch);

curl_close($ch);

//打印获得的数据

print_r($output);

以上方式获取到的数据是json格式的,使用json_decode函数解释成数组。

$output_array = json_decode($output,true);

如果使用json_decode($output)解析的话,将会得到object类型的数据。

PHP 相关文章推荐
example2.php
Oct 09 PHP
PHP 的 __FILE__ 常量
Jan 15 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
Jun 08 PHP
批量获取memcache值并按key的顺序返回的实现代码
Jun 14 PHP
PHP中的strtr函数使用介绍(str_replace)
Oct 20 PHP
深入解析php中的foreach问题
Jun 30 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
Jul 05 PHP
分享常见的几种页面静态化的方法
Jan 08 PHP
学习php设计模式 php实现门面模式(Facade)
Dec 07 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
深入讲解PHP的Yii框架中的属性(Property)
Mar 18 PHP
php 实现一个字符串加密解密的函数实例代码
Nov 01 PHP
php文本转图片自动换行的方法
Mar 13 #PHP
用Php编写注册后Email激活验证的实例代码
Mar 11 #PHP
php 生成唯一id的几种解决方法
Mar 08 #PHP
PHP Directory 函数的详解
Mar 07 #PHP
PHP重定向的3种方式
Mar 07 #PHP
file_get_contents获取不到网页内容的解决方法
Mar 07 #PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
Mar 06 #PHP
You might like
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
jquery中ajax学习笔记一
2011/10/16 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
jQuery网页右侧广告跟随滚动代码分享
2020/04/20 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
简单说说angular.json文件的使用
2018/10/29 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
elementUI同一页面展示多个Dialog的实现
2020/11/19 Javascript
[01:17]Ti4 循环赛第一日回顾
2014/07/11 DOTA
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
PyQT实现多窗口切换
2018/04/20 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
2019/08/21 Python
python 爬虫如何实现百度翻译
2020/11/16 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
医院护士的求职信
2014/01/03 职场文书
安全责任书范本
2014/04/15 职场文书
全运会口号
2014/06/20 职场文书
项目申报专员岗位职责
2014/07/09 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
党性观念心得体会
2014/09/03 职场文书
2014年检验员工作总结
2014/11/19 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android
JavaScript高级程序设计之变量与作用域
2021/11/17 Javascript
MySQL解决Navicat设置默认字符串时的报错问题
2022/06/16 MySQL