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 相关文章推荐
mysql5详细安装教程
Jan 15 PHP
自己前几天写的无限分类类
Feb 14 PHP
php 数学运算验证码实现代码
Oct 11 PHP
PHP 透明水印生成代码
Aug 27 PHP
如何使用PHP批量去除文件UTF8 BOM信息
Aug 05 PHP
非常实用的php弹出错误警告函数扩展性强
Jan 17 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
Jun 12 PHP
php在apache环境下实现gzip配置方法
Apr 02 PHP
thinkPHP中分页用法实例分析
Dec 26 PHP
PHP获取访问设备信息的方法示例
Feb 20 PHP
laravel 修改记住我功能的cookie保存时间的方法
Oct 14 PHP
基于thinkphp6.0的success、error实现方法
Nov 05 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
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
php获取错误信息的方法
2015/07/17 PHP
smarty高级特性之对象的使用方法
2015/12/25 PHP
php无限级分类实现方法分析
2016/10/19 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
基于JQuery的日期联动实现代码
2011/02/24 Javascript
Fixie.js 自动填充内容的插件
2012/06/28 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
jQuery插件ajaxFileUpload异步上传文件
2016/10/19 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
JavaScript获取ul中li个数的方法
2017/02/13 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
Angular短信模板校验代码
2020/09/23 Javascript
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
python任务调度实例分析
2015/05/19 Python
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
Python缩进和冒号详解
2016/06/01 Python
python实现计数排序与桶排序实例代码
2019/03/28 Python
django 信号调度机制详解
2019/07/19 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
班长岗位职责
2013/11/10 职场文书
公务员总结性个人自我评价
2013/12/05 职场文书
党校培训自我鉴定范文
2014/04/10 职场文书
大学生简历求职信
2014/06/24 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
新闻稿格式范文
2015/07/18 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
关于感恩的作文
2019/08/26 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
如何获取numpy array前N个最大值
2021/05/14 Python
《废话连篇——致新手》——chinapizza
2022/04/05 无线电