curl的简单使用步骤
要使用cURL来发送url请求,具体步骤大体分为以下四步:
1.初始化
2.设置请求选项
3.执行一个cURL会话并且获取相关回复
4.释放cURL句柄,关闭一个cURL会话
// 1. 初始化一个cURL会话
$ch = curl_init();
// 2. 设置请求选项, 包括具体的url
curl_setopt($ch, CURLOPT_URL, "http://www.360weboy.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
// 3. 执行一个cURL会话并且获取相关回复
$response = curl_exec($ch);
// 4. 释放cURL句柄,关闭一个cURL会话
curl_close($ch);
if ($response === FALSE) {
echo "cURL 具体出错信息: " . curl_error($ch);
}
在执行一个cURL请求后,你也可以使用curl_getinfo获取该请求的具体信息:
curl_exec($ch);
$curl_info= curl_getinfo($ch);
echo "收到的http回复的code为: {$curl_info['http_code']}";
一些参数参考
下列选项的值将被作为长整形使用(在option参数中指定):
CURLOPT_INFILESIZE: 当你上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小。
CURLOPT_VERBOSE: 如果你想CURL报告每一件意外的事情,设置这个选项为一个非零值。
CURLOPT_HEADER: 如果你想把一个头包含在输出中,设置这个选项为一个非零值。
CURLOPT_NOPROGRESS: 如果你不会PHP为CURL传输显示一个进程条,设置这个选项为一个非零值。
注意:PHP自动设置这个选项为非零值,你应该仅仅为了调试的目的来改变这个选项。
CURLOPT_NOBODY: 如果你不想在输出中包含body部分,设置这个选项为一个非零值。
CURLOPT_FAILONERROR: 如果你想让PHP在发生错误(HTTP代码返回大于等于300)时,不显示,设置这个选项为一人非零值。默认行为是返回一个正常页,忽略代码。
CURLOPT_UPLOAD: 如果你想让PHP为上传做准备,设置这个选项为一个非零值。
CURLOPT_POST: 如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。
CURLOPT_FTPLISTONLY: 设置这个选项为非零值,PHP将列出FTP的目录名列表。
CURLOPT_FTPAPPEND: 设置这个选项为一个非零值,PHP将应用远程文件代替覆盖它。
CURLOPT_NETRC: 设置这个选项为一个非零值,PHP将在你的 ~./netrc 文件中查找你要建立连接的远程站点的用户名及密码。
CURLOPT_FOLLOWLOCATION: 设置这个选项为一个非零值(象 ‘Location: ‘)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 ‘Location: ‘的头)。
CURLOPT_PUT: 设置这个选项为一个非零值去用HTTP上传一个文件。要上传这个文件必须设置CURLOPT_INFILE和CURLOPT_INFILESIZE选项.
CURLOPT_MUTE: 设置这个选项为一个非零值,PHP对于CURL函数将完全沉默。
CURLOPT_TIMEOUT: 设置一个长整形数,作为最大延续多少秒。
CURLOPT_LOW_SPEED_LIMIT: 设置一个长整形数,控制传送多少字节。
CURLOPT_LOW_SPEED_TIME: 设置一个长整形数,控制多少秒传送CURLOPT_LOW_SPEED_LIMIT规定的字节数。
CURLOPT_RESUME_FROM: 传递一个包含字节偏移地址的长整形参数,(你想转移到的开始表单)。
CURLOPT_SSLVERSION: 传递一个包含SSL版本的长参数。默认PHP将被它自己努力的确定,在更多的安全中你必须手工设置。
CURLOPT_TIMECONDITION: 传递一个长参数,指定怎么处理CURLOPT_TIMEVALUE参数。你可以设置这个参数为TIMECOND_IFMODSINCE 或 TIMECOND_ISUNMODSINCE。这仅用于HTTP。
CURLOPT_TIMEVALUE: 传递一个从1970-1-1开始到现在的秒数。这个时间将被CURLOPT_TIMEVALUE选项作为指定值使用,或被默认TIMECOND_IFMODSINCE使用。
下列选项的值将被作为字符串:
CURLOPT_URL: 这是你想用PHP取回的URL地址。你也可以在用curl_init()函数初始化时设置这个选项。
CURLOPT_USERPWD: 传递一个形如[username]:[password]风格的字符串,作用PHP去连接。
CURLOPT_PROXYUSERPWD: 传递一个形如[username]:[password] 格式的字符串去连接HTTP代理。
CURLOPT_RANGE: 传递一个你想指定的范围。它应该是’X-Y’格式,X或Y是被除外的。HTTP传送同样支持几个间隔,用逗句来分隔(X-Y,N-M)。
CURLOPT_POSTFIELDS: 传递一个作为HTTP “POST”操作的所有数据的字符串。
CURLOPT_REFERER: 在HTTP请求中包含一个’referer’头的字符串。
CURLOPT_USERAGENT: 在HTTP请求中包含一个’user-agent’头的字符串。
CURLOPT_FTPPORT: 传递一个包含被ftp ‘POST’指令使用的IP地址。这个POST指令告诉远程服务器去连接我们指定的IP地址。 这个字符串可以是一个IP地址,一个主机名,一个网络界面名(在UNIX下),或是‘-’(使用系统默认IP地址)。
CURLOPT_COOKIE: 传递一个包含HTTP cookie的头连接。
CURLOPT_SSLCERT: 传递一个包含PEM格式证书的字符串。
CURLOPT_SSLCERTPASSWD: 传递一个包含使用CURLOPT_SSLCERT证书必需的密码。
CURLOPT_COOKIEFILE: 传递一个包含cookie数据的文件的名字的字符串。这个cookie文件可以是Netscape格式,或是堆存在文件中的HTTP风格的头。
CURLOPT_CUSTOMREQUEST: 当进行HTTP请求时,传递一个字符被GET或HEAD使用。为进行DELETE或其它操作是有益的,更Pass a string to be used instead of GET or HEAD when doing an HTTP request. This is useful for doing or another, more obscure, HTTP request.
注意: 在确认你的服务器支持命令先不要去这样做。
下列的选项要求一个文件描述(通过使用fopen()函数获得):
CURLOPT_FILE: 这个文件将是你放置传送的输出文件,默认是STDOUT.
CURLOPT_INFILE: 这个文件是你传送过来的输入文件。
CURLOPT_WRITEHEADER: 这个文件写有你输出的头部分。
CURLOPT_STDERR: 这个文件写有错误而不是stderr。
参考:http://cn2.php.net/manual/zh/function.curl-setopt.php
curl的简单使用步骤的更多相关文章
- Linux curl使用简单介绍
在两台新搬迁的微信服务器上执行命令: curl -H "Content-Type: application/json" -d '{"partner_no":&q ...
- 5个简单的步骤把 WordPress 打造成 CMS
可能网站的首页一直是一成不变的博客样子,有时候也会挺闷的,个人觉得首页就是应该把博客中最好最重要的内容展现给读者,基于这个想法,我们可以把博客的首页改成一个非常简单的 CMS 首页. 基于 WordP ...
- 图解java方法的简单执行步骤
图解java方法的简单执行步骤 1,找到该方法 2 传入对应的参数 3 执行方法体 4 返回结果
- LinqToHubble介绍及简单使用步骤——LinqToHubble是对HubbleDotnet的封装
或许你还你知道HubbleDotnet,下面简单对HubbleDotnet坐下介绍. HubbleDotNet是由盘古分词作者——eaglet 开发的一个基于.net framework 的开源免费的 ...
- 使用curl创建简单的性能监控工具
cURL,全称Command Line URL viewer,是一种命令行工具,用来发送网络请求,然后得到和提取数据,显示在标准输出(stdout). 我们可以使用curl来获取网页的源码,显示头信息 ...
- svn上误删除覆盖的文件简单恢复步骤
因为失误,不小心把同事提交到svn的文件给覆盖删除了.早上来和我说,吓死宝宝了... 还好,svn是个好东西,恢复到某个版本就行了.下面是简单步骤: 1.在本地的svn项目文件,右键---Toitoi ...
- Jmeter接口自动化测试:简单使用步骤
好处:不需要页面就可以提前介入测试,实施成本低,修改量少,相对于UI自动化来说更为稳定 1. 下载略过 2. 使用步骤 创建线程组合控制器(Jmeter基本操作) 针对http协议的接口增加Sampl ...
- curl使用简单介绍
http://www.linuxidc.com/Linux/2008-01/10891.htm Curl是Linux下一个很强大的http命令行工具,其功能十分强大. 二话不说,先从这里开始吧! $ ...
- 初学者利用git 上传代码到Coding的简单操作步骤
1.首先登陆coding网站注册账号https://coding.net/ (注册完后需登陆邮箱激活邮件) 2.登陆刚注册的coding账号 ,添加项目 添加项目—〉输入项目名称—〉输入对项目的简单描 ...
随机推荐
- 大数据应用日志采集之Scribe演示实例完全解析
大数据应用日志采集之Scribe演示实例完全解析 引子: Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储系 ...
- BST&AVL&红黑树简单介绍
(BST&AVL&红黑树简单介绍) 前言: 节主要是给出BST,AVL和红黑树的C++代码,方便自己以后的查阅,其代码依旧是data structures and algorithm ...
- 异步队列 Deferred
异步队列 Deferred 背景: 移动web app开发,异步代码是时常的事,比如有常见的异步操作: Ajax(XMLHttpRequest) Image Tag,Script Tag,iframe ...
- [分享]CSS美化浏览器滚动条
今天看到一个站点的滚动条样式特别漂亮,顺便上网搜了一些相关资料,分享给大家: PS:兼容所有浏览器的滚动条样式目前是不存在的. IE下的滚动条样式 IE是最早提供滚动条的样式支持,好多年了,但是其它浏 ...
- 初识sql server 2000-数据库的连接
这段时间主要进行学生信息管理系统的实现,所以与数据库打交道是难免的,我也是刚敲过5个数据库例子的小鸟,对数据库的理解还欠佳,不足之处大鸟飞过还请指点. 安装完sql server2000之后,首先要做 ...
- javascript操作正则表达式对象的方法总结
//正则表达式对象 /* var s = 'good good study day day up '; var r, re; re = new RegExp('study',"g" ...
- 第三届蓝桥杯Java高职组决赛第一题
题目描述: 看这个算式: ☆☆☆ + ☆☆☆ = ☆☆☆ 如果每个五角星代表 1 ~ 9 的不同的数字. 这个算式有多少种可能的正确填写方法? 173 + 286 = 459 295 + 173 = ...
- 算法线性编程珠玑读书笔记之----->使用线性算法求解连续子序列的最大和
这段时间笔者几篇文章介绍了改算法线性的文章. 关联文章的地址 这个算法我在我的博客里应用动态规划做过,详细实现请参阅我的dp板块,下面给出书上最快的算法,时间复杂度为O(n),称之为线性算法. #in ...
- 使用 IDEA 创建 Maven Web 项目 (异常)- Disconnected from the target VM, address: '127.0.0.1:59770', transport: 'socket'
运行环境: JDK 版本:1.8 Maven 版本:apache-maven-3.3.3 IDEA 版本:14 maven-jetty-plugin 配置: <plugin> <gr ...
- [ios2]使用NSOperationQueue简化多线程开发和队列的优先级 【转】
多线程开发是一件需要特别精心的事情,即使是对有多年开发经验的工程师来说. 为了能让初级开发工程师也能使用多线程,同时还要简化复杂性.各种编程工具提供了各自的办法.对于iOS来说,建议在尽可能的情况下避 ...