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 相关文章推荐
php 无限级 SelectTree 类
May 19 PHP
php 静态变量的初始化
Nov 15 PHP
PHP学习之数组值的操作
Apr 17 PHP
解析php时间戳与日期的转换
Jun 06 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
Drupal7 form表单二次开发要点与实例
Mar 02 PHP
php实现博客,论坛图片防盗链的方法
Oct 15 PHP
深入了解PHP中的Array数组和foreach
Nov 06 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
详解php实现页面静态化原理
Jun 21 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
php统计数组不同元素的个数的实例方法
Sep 26 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
怎么在Windows系统中搭建php环境
2013/08/31 PHP
PHP中的类型提示(type hinting)功能介绍
2015/07/01 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
深入了解javascript中的prototype与继承
2013/04/14 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
微信小程序实现人脸检测功能
2018/05/25 Javascript
vue实现数字动态翻牌的效果(开箱即用)
2019/12/08 Javascript
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
如何写毕业求职自荐信
2013/11/06 职场文书
大学生自我评价范文分享
2014/02/21 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python
Python List remove()实例用法详解
2021/08/02 Python