地址:http://phpbook.phpxy.com/34771

参考:http://php.net/manual/zh/function.curl-setopt.php

我们将curl的步骤分为以下7步:

  1. 初使化curl资源
  2. 参数设置请求的协议地址
  3. 参数设置是否返回请求结果
  4. 设置发送数据(无发送数据可不设置)
  5. 其他的参数信息设置(按实际工作需要决定)
  6. 执行或执行得到返回结果
  7. 关闭curl资源

一、初使化curl资源

这只有一句话,就是使用的是curl_init函数。这个参数法面要传入任何参数。返回curl的操作资源。

因为,我们在后面是通过curl_setopt向curl的操作资源变量压入数据的。

例:

$ch = curl_init();

二、参数设置请求的协议地址

curl_setopt函数的详细使用如下:

类型 说明
函数 curl_setopt
参数1 curl资源变量
参数2 curl参数选项
参数3 curl参数值

CURLOPT_URL 这个参数选项规定了请求的url地址。

curl_setopt($ch, CURLOPT_URL, "http://www.phpxy.com");

三、参数设置是否返回请求结果

我们希望curl请求后返回对应的结果。我们要得到对应的结果,也需要设置一个参数,这个参数名为:CURLOPT_RETURNTRANSFER。

若需要返回值即为1。不需请求后返回的结果可设置为0。

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

四、设置发送数据

如果是get请求,我们不需要设置发送的参数。在post等请求的时候,我们需要设置发送方法为post方法。并设置发送的数据。

*CURLOPT_POST *值设为1是使用POST方法,0为不使用POST方法

CURLOPT_POSTFIELDS设置传递的数据

//声明使用POST方式来进行发送
curl_setopt($ch, CURLOPT_POST, 1); //发送什么数据呢
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

五、其他的参数信息设置

如果是https有的时候我们需要忽略https的安全证书。

CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST 两个参数改为false即忽略了证书。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

CURLOPT_HEADER这个参数又决定是是否处理http的头信息,我们不想接收处理的话可将这个值设置为0。

curl_setopt($ch, CURLOPT_HEADER, 0);

此外,我们还可以设置请求的超时时间,参数为:CURLOPT_TIMEOUT。

curl_setopt($ch, CURLOPT_TIMEOUT, 10);

其他参数非常多,我们在之前讲过,如果你想了解更多的内容可以访问:
地址如下:http://php.net/manual/zh/function.curl-setopt.php

六、执行或执行得到返回结果

我们第三步中,将CURLOPT_RETURNTRANSFER 参数中将值设为1。如果执行的结果有数据。使用curl_exec执行后,会将结果返回给$output变量。

$output = curl_exec($ch);

七、关闭curl资源

关闭curl资源。因为资源类型,我们反复强调过,有打开就有关闭。

如果不需要使用,使用curl_close关闭后立刻释放内存。

curl_close($ch);

curl使用例子的更多相关文章

  1. php curl使用例子

    PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯.libcurl目前支持http.https.ftp.gopher.telnet. ...

  2. php中的curl常用例子

    1.基本请求 <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com"); ...

  3. 使用curl 下载HTML

    简单的一个curl小例子: #include <iostream> #include <string> #include <sstream> #include &l ...

  4. 海思平台交叉编译curl支持SSL功能

    1.准备工具 1).交叉编译工具 2).下载libcurl和openssl源代码,我使用的是(openssl-1.0.2o.tar,curl-7.59.0.tar) 3).查看cpu详细 ~ # ca ...

  5. mac/linux常用命令

    文件 创建文件: touch filename 创建目录: mkdir dirname, 创建目录及文件: mkdir -p dir/file 删除文件/目录: rm [-rf] filename 显 ...

  6. PHP微信墙制作,开源

    PHP微信墙制作 微信墙 PHP 注意:由于微信官网不定时会更新,其中模拟登陆以及爬取数据的方式可能会失效,最近这12个月里,就有两次更新导致此功能需要重写. 服务端源码->github地址传送 ...

  7. libcurl编程学习

    一.curl简介 curl是一个利用URL语法在命令行方式下工作的文件传输工具.它支持的协议有:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以 ...

  8. thinkphp实现短信验证注册

    前言 注册时经常需要用到短信验证码,本文记录一下思路和具体实现. 短信验证平台使用云片,短信验证码的生成使用thinkphp. 思路 1.用户输入手机号,请求获取短信验证码. 2.thinkphp生成 ...

  9. vc2008构建和使用libcurl静态库

    1>下载CURL源代码curl-7.26.0.zip 2>用VC2008/2005打开工程curl-7.26.0\lib\libcurl.vcproj,转换下工程并构建,可以直接编译成功! ...

随机推荐

  1. python __set__ __get__ __delete__

    class Attr(object): def __init__(self,attrname,attrtype): self.attrname=attrname self.attrtype=attrt ...

  2. Windows最强ssh客户端推荐 —— Bitvise SSH Client

    原名Tunnelier,解除它是因为为了sshFQ,没想到它既有SSH Terminal,又集成SFTP,还能FQ,功能一应区全. 还支持pem证书,回想最初使用putty,还要把pem证书进行转换才 ...

  3. iOS程序发布测试-生成ad hoc证书

    转自: http://blog.sina.com.cn/s/blog_68444e230100srdn.html iOS程序发布测试3-生成ad hoc证书 iOS证书分2种,1种是开发证书,用来给你 ...

  4. 关于HTML、js加密、混淆、源码保护、代码安全,防止解压直接看源码

    一直有人问HTML加密混淆怎么做,其实这在业内是早已很多人研究过的课题.假日期间整理一篇文章分享给大家. 我们先理下需求,加密的目的是什么?加密到什么级别?为此我们可以牺牲什么?我们知道这个世界不存在 ...

  5. Hadoop-2.4.1学习之怎样确定Mapper数量

    MapReduce框架的优势是能够在集群中并行运行mapper和reducer任务,那怎样确定mapper和reducer的数量呢,或者说怎样以编程的方式控制作业启动的mapper和reducer数量 ...

  6. JDBC:数据库操作:事务

    事务特征:原子性,一致性,独立性,持久性. 要想操作事务,必须按照以下步骤完成. 1,取消掉自动提交(SET AUTOCOMMIT=0):每次执行数据库更新的时候实际上发出SQL命令之后就已经提交上去 ...

  7. win10下Visual Studio 2015,C++ x64编译zmq

    PS.本人编译过程踩得坑,记录备忘 下载:(1)官网:http://zeromq.org/intro:get-the-software,有简明的编译方式,cmake的,这里不多赘述 (2)到GitHu ...

  8. 【服务器时间修改为东八区】包括Apache2和mysql

    1.服务器Apache时间修改,可通过修改php.ini进行修改 所以就深入了解了一下, 发现Apache(PHP)的服务器时间时区默认为UTC(Coordinated UniversalTime 世 ...

  9. 基于easyui fom分组插件

    本插件适用于表单按属性分组,可以动态设置显示的列数,每一个表单宽度,表单类型,以及对齐.不同panel之间的表单也是对齐的. 效果: 依赖:jquery ,easyui, 实现过程:整个控件一个pan ...

  10. 关于audio标签播放跨域的问题

    遇到过的错误: DOMException: The play() request was interrupted by a new load request. DOMException: Failed ...