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 相关文章推荐
一个用于MySQL的PHP XML类
Oct 09 PHP
傻瓜化配置PHP环境――Appserv
Dec 13 PHP
使用PHP socke 向指定页面提交数据
Jul 23 PHP
PHP学习笔记 IIS7下安装配置php环境
Oct 29 PHP
PHP基础之运算符的使用方法
Apr 28 PHP
PHP入门之常量简介和系统常量
May 12 PHP
PHP魔术引号所带来的安全问题分析
Jul 15 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
PHP 前加at符合@的作用解析
Jul 31 PHP
Joomla调用系统自带编辑器的实现方法
May 05 PHP
PHP实现单条sql执行多个数据的insert语句方法
Oct 11 PHP
PHP上传图片到数据库并显示的实例代码
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读注册表
2006/10/09 PHP
我的论坛源代码(八)
2006/10/09 PHP
php的curl实现get和post的代码
2008/08/23 PHP
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
深入file_get_contents函数抓取内容失败的原因分析
2013/06/25 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
javascript比较文档位置
2008/04/08 Javascript
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
Js四则运算函数代码
2012/07/21 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
js实现鼠标悬浮给图片加边框的方法
2015/01/30 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
解决LayUI表单获取不到data的问题
2018/08/20 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
Django后台admin的使用详解
2019/07/08 Python
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
挂职思想汇报
2013/12/31 职场文书
大学校运会广播稿
2014/02/03 职场文书
IDEA中sout快捷键无效问题的解决方法
2022/07/23 Java/Android
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis