【一】概论

日常开发里,cURL使用最多的协议就是HTTP协议的GET、POST请求,其他协议和请求方式用的较少。

【二】开启

开发前检验是否开启了cURL模块,开启方法为php.int中打开extension=php_curl.dll即可

开启后去页面查看是否包含enable开启

【三】使用步骤

(1)初始化cURL资源

$cn = curl_init();

(2)传入参数,设置请求的协议地址

//设置选项,包括URL
curl_setopt($cn,CURLOPT_URL,"localhost");

(3)参数设置是否返回请求结果

curl_setopt($cn, CURLOPT_RETURNTRANSFER, 1);

(4)设置发送数据(无发送数据可不设置)

curl_setopt($cn, CURLOPT_HEADER, 0);

(5)其他参数信息设置(按实际工作需求决定)

(6)执行或执行得到返回结果

//执行并获取HTML文档内容
$output = curl_exec($cn);

(7)释放cURL句柄,关闭cURL资源

//释放cURL句柄
curl_close($cn);
//打印获得的数据
print_r($output);

完整代码:

<?php
// phpinfo();
$cn = curl_init();
//设置选项,包括URL
curl_setopt($cn,CURLOPT_URL,"http://www.php.cn");
curl_setopt($cn, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cn, CURLOPT_HEADER, 0);
//执行并获取HTML文档内容
$output = curl_exec($cn);
//释放cURL句柄
curl_close($cn);
//打印获得的数据
print_r($output);
?>

注意:第二步到第五步可以合为一个步骤,统称为cURL参数设置。所有curl参数设置都是通过curl_setopt()完成

【详解】

(1)初始化cURL资源

在后面通过curl_setopt()向curl的操作资源变量压入数据

(2)参数设置请求的协议地址

curl_setopt(资源变量,参数选项,参数值);

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

(3)参数设置是否返回请求结果

若要curl请求返回对应的结果,则需要设置一个参数。参数名为:CURLOPT_RETURNTRANSFER

若需要返回值,则设置为1。无需返回结果则设置为0即可

(4)设置发送的数据

若是get请求,则不需要设置发送的参数。

若为post请求,则需要设置发送的参数

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

(5)其他参数信息设置

若是https有时需要忽略安全证书

此外还可以设置超时时间

curl_setopt($cn,CURLOPT_TIMEOUT,10);

(独孤九剑)--cURL的更多相关文章

  1. 在PowerShell中使用curl(Invoke-WebRequest)

    前言 习惯了windows的界面模式就很难转去命令行,甚至以命令行发家的git也涌现出各种界面tool.然而命令行真的会比界面快的多,如果你是一个码农. situation:接到需求分析bug,需要访 ...

  2. php中实现的一个curl批处理的实例

    curl是利用URL语法在命令行方式下工作的开源文件传输工具 本文在php中实现了的一个curl批处理的实例. 代码如下: header("Content-Type:text/html;ch ...

  3. PHP curl 函数

    转载http://sunking.sinaapp.com/archives/111 最近使用curl的时候,发现了一个比较好用的函数,当然是初级者适用的一个函数,就是curl_getinfo(), 在 ...

  4. curl -w,–write-out参数详解

    顾名思义,write-out的作用就是输出点什么.curl的-w参数用于在一次完整且成功的操作后输出指定格式的内容到标准输出. 输出格式由普通字符串和任意数量的变量组成,输出变量需要按照%{varia ...

  5. CURL HELP

    CURL下载 在windows的系统环境变量中,将CURL的路径(curl.exe存放的路径)复制到"Path"变量的结尾 Usage: curl [options...] < ...

  6. curl的登录总结

    demo1 <?php $curl=curl_init('http://www.baidu.com'); curl_exec($curl); curl_close($curl); ?> c ...

  7. php curl获取的数据不直接输出

    curl获取页面内容,不直接输出到页面 必需设置curl的CURLOPT_RETURNTRANSFER选项为1或true curl_setopt($ch, CURLOPT_RETURNTRANSFER ...

  8. PHP的CURL

    使用CURL完成一个请求: 初始化连接句柄 设置CURL选项 执行并获取结果 释放CURL连接句柄 发送GET请求 function doGetRequest($url,$data,$timeout ...

  9. PHP curl报错“Problem (2) in the Chunked-Encoded data”解决方案

    $s = curl_init(); curl_setopt($s, CURLOPT_POST, true); curl_setopt($s, CURLOPT_POSTFIELDS, $queryStr ...

随机推荐

  1. struts2学习笔记(8)-------struts2的ajax支持

    struts2支持一种stream类型的Result,这样的类型的Result能够直接向client浏览器响应二进制,文本等. 我们能够再action里面生成文本响应,然后在client页面动态载入该 ...

  2. Python 不同对象比較大小

    万恶的源泉: Fireboo的疑问(当然 lambda 本身写的就有问题): >>> filter( lambda x: x > 2, [ 1, [ 1, 2, 3 ], 2, ...

  3. what is Servlet Container[转载]

    1 在这个博客中,我将描述一下web服务器.Servlet容器的基本概念,以及Servlet容器和jvm之间的关系.我想要证明的是Servlet容器不过就是一个java程序. 2 什么是web服务器 ...

  4. MSD6A628开发资料与技术支持

    MSD6A628VX/VXM是mstar推出的低成本安卓智能网络电视方案,628分两个版本,一个是内置512MB内存,一个是外挂1G内存, 安卓4.4系统,4核A7处理器,Mali450MP2 GPU ...

  5. jquery对所有<input type="text"的控件赋值

    function resetData() {      $("input[type=text]").each(      function() {     $(this).attr ...

  6. Tomcat根目录下work文件夹的作用(转载)

    用 tomcat作web服务器的时候,部署的程序在webApps下,这些程序都是编译后的程序.tomcat有一个work目录,里面存放了页面的缓存, 访问的jsp都会编译,编译后的文件都会存储在wor ...

  7. Spring中AOP的两种代理方式(Java动态代理和CGLIB代理-转载

    内容是摘抄的,不知最初的原作者,见谅 Java 动态代理.具体有如下四步骤: 通过实现 InvocationHandler 接口创建自己的调用处理器: 通过为 Proxy 类指定 ClassLoade ...

  8. oracle给用户授权

    1.在PLSQL里,用sys(oracle系统用户)登陆,登陆的时候一定要选择SYSDBA.普通用户登陆选择normal就可以了 2.创建用户 *也可以给普通用户授权为dba即数据库管理员.在导入导出 ...

  9. ACM_下一个排列

    The Next Permutation Time Limit: 2000/1000ms (Java/Others) Problem Description: For this problem, yo ...

  10. The Chosen One

    https://www.hackerrank.com/contests/101hack45/challenges/the-chosen-one 找出一个数字,使得,数组中只有一个数字不是这个数的约数, ...