PHP中使用curl入门教程


Posted in PHP onJuly 02, 2015

概述

在我的上一篇文章“curl和libcurl简介”中简单的给大家介绍了curl相关的知识。这篇文章向大家介绍一下PHP中的curl扩展。
尽管在上一篇文章中,对curl和libcurl做了区分,也解释了某些相关的概念。同时,也知道了PHP中的curl扩展其实是对libcurl的封装。但是,在这篇文章中,为了写起来方便,将不再对这两个概念进行区分,因此文章接下来提到的curl其实是指libcurl,希望不会把大家绕糊涂。
关于PHP中curl扩展这里就不再过多介绍了,大家可以查下文档。

安装curl

关于curl的安装,这里也不做过多的介绍。windows和linux都是一样的流程,根据平台选择相应的安装方式,然后在php.ini文件中开启curl扩展,与别的扩展的安装都是一样的。

PHP中使用curl的步骤

在PHP中,可以使用curl完成各种各样的功能,如抓取网页,文件的上传/下载、模拟登录等。但是这些功能的实现都是基于四个步骤完成的,所以curl的使用并不复杂。

使用curl时,主要分为以下四个步骤:

1.初始化一个curl实例—curl_init()
2.设置curl执行时的相关选项—curl_setopt()
3.执行curl查询—curl_exec()
4.关闭curl—curl_close()

在这四个步骤中,1、3、4步都很容易。最麻烦的就是2步,这一步设置curl的选项,这里有100多个不同的选项,要完成不同的功能,就要对这些选项进行组合。
下面对这四个步骤做一下说明:

1.初始化一个curl实例,这一步使用函数curl_init(),查看一下PHP手册,可以看到该函数的返回值是一个资源(resource)类型,我们需要使用一个变量来保存这个实例,因为后面的步骤都会用到这个实例。具体代码示例:

$curl=curl_init(); //输出resource(2, curl)

2.设置curl相关选项,设置curl选项使用函数curl_setopt()。该函数接受三个参数:第一个参数就是要设置的curl的实例也就是第一步中的那个实例,第二个参数要设置的选项,是一个预定义的常量,具体都有哪些选项,大家可以在手册里自行查阅。第三个参数是要设置的选项的具体值。
代码示例:

curl_setopt ($curl, CURLOPT_URL, "http://www.php.net");

3.执行curl查询,这一步使用函数curl_exec()。该函数接受一个参数,这个参数也是第1步中获取的实例。
代码示例:
curl_exec ($curl);

4.关闭当前curl,这一步使用函数curl_close()。该函数同样也是接受第1步中获取的curl实例作为参数。
代码示例:
curl_close($curl);

在PHP中使用curl一般都遵循这四个步骤,其中主要是通过对2步的不同设置来完成不同的功能,所以第2步是最麻烦的,有的甚至需要大家用心理解。

一个简单的curl代码实例
前面给大家介绍了使用curl的四个步骤,这里给大家简单演示一个抓取网页内容的实例,代码很简单,但是希望能帮助大家更好的理解curl。
抓取百度首页内容:

$curl=curl_init();

curl_setopt ($curl, CURLOPT_URL, "http://www.baidu.com");

$baidu=curl_exec($curl);

curl_close($curl);

运行这一段代码,页面将显示百度首页。

总结

截止到今天,写了五六篇博客了。很想把自己学习的知识记录下来,也很想跟大家分享,但是一直觉得自己的语言组织能力不是太好,不知道看到文章的人能不能看懂,希望以后在语言组织方面能不断进步吧。

PHP 相关文章推荐
7个超级实用的PHP代码片段
Jul 11 PHP
php 判断数组是几维数组
Mar 20 PHP
部署PHP项目应该注意的几点事项分享
Dec 20 PHP
PHP Session机制简介及用法
Aug 19 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
Sep 22 PHP
服务器上配置PHP运行环境教程
Feb 12 PHP
CodeIgniter使用smtp服务发送html邮件的方法
Jun 10 PHP
PHP上传图片类显示缩略图功能
Jun 30 PHP
PHP批量删除jQuery操作
Jul 23 PHP
PHP简单实现记录网站访问量功能示例
Jun 06 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
Oct 12 PHP
Laravel 验证码认证学习记录小结
Dec 20 PHP
Smarty最简单实现列表奇偶变色的方法
Jul 01 #PHP
PHP中的常见魔术方法功能作用及用法实例
Jul 01 #PHP
PHP获取文件夹大小函数用法实例
Jul 01 #PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 #PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
Jul 01 #PHP
PHP判断是否连接上网络的方法
Jul 01 #PHP
PHP抓取网页、解析HTML常用的方法总结
Jul 01 #PHP
You might like
php车辆违章查询数据示例
2016/10/14 PHP
实例解析php的数据类型
2018/10/24 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
Convert Seconds To Hours
2007/06/16 Javascript
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
为javascript添加String.Format方法
2020/08/11 Javascript
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
2017/09/01 Javascript
详解webpack引用jquery(第三方模块)的三种办法
2019/08/21 jQuery
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
Vue实现简单计算器
2021/01/20 Vue.js
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
利用Python实现颜色色值转换的小工具
2016/10/27 Python
Python实现的单向循环链表功能示例
2017/11/10 Python
python删除过期log文件操作实例解析
2018/01/31 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
详解python数据结构和算法
2019/04/18 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
工业学校毕业生自荐书
2014/01/03 职场文书
中央空调节能方案
2014/06/15 职场文书
大学生工作求职信
2014/06/23 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
学生保证书
2015/01/16 职场文书
高中开学感言
2015/08/01 职场文书
保险公司增员口号
2015/12/25 职场文书
高考升学宴主持词
2019/06/21 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android
nginx 添加http_stub_status_module模块
2022/05/25 Servers