PHP 支持curl
![](/icons/34533hanshu.gif)
(允许你用区别
![](/icons/34533de.gif)
协议连接和沟通区别
![](/icons/34533de.gif)
服务器). curl 是使用URL语法
![](/icons/34533de.gif)
传送文件工具
![](/icons/34533dou.gif)
支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP
![](/icons/34533dou2.gif)
curl 支持SSL证书、HTTP POST、HTTP PUT 、FTP 上传
![](/icons/34533dou.gif)
kerberos、基于HTT格式
![](/icons/34533de.gif)
上传、代理、cookie、用户+口令证明、文件传送恢复、http代理通道和大量其他有用
![](/icons/34533de.gif)
窍门技巧
![](/icons/34533dou2.gif)
以下是
![](/icons/34533yi.gif)
个例子:是把PHP
![](/icons/34533de.gif)
主页取回放到
![](/icons/34533yi.gif)
个文件中
![](/icons/34533dou2.gif)
例 1. 使用PHP
![](/icons/34533de.gif)
CURL模块取回PHP主页
$ch = curl_init (”http://www.php.net/”);
$fp = fopen (”php_homepage.txt”, “w”);
curl_
opt ($ch, CURLOPT_FILE, $fp);
curl_
opt ($ch, CURLOPT_HEADER, 0);
curl_exec ($ch);
curl_close ($ch);
fclose ($fp);
?>
curl相关
![](/icons/34533hanshu.gif)
列表:
curl_init —
![](/icons/34533chushi.gif)
化
![](/icons/34533yi.gif)
个CURL会话
curl_
![](/icons/34533set.gif)
opt — 为CURL
![](/icons/34533diaoyong.gif)
设置
![](/icons/34533yi.gif)
个选项
curl_exec — 执行
![](/icons/34533yi.gif)
个CURL会话
curl_close — 关闭
![](/icons/34533yi.gif)
个CURL会话
curl_version — 返回当前CURL版本
1>curl_init —
![](/icons/34533chushi.gif)
化
![](/icons/34533yi.gif)
个CURL会话
描述
![](/icons/34533int.gif)
curl_init ([
![](/icons/34533string.gif)
url])
curl_init
![](/icons/34533kh.gif)
![](/icons/34533hanshu.gif)
将
![](/icons/34533chushi.gif)
化
![](/icons/34533yi.gif)
个新
![](/icons/34533de.gif)
会话
![](/icons/34533dou.gif)
返回
![](/icons/34533yi.gif)
个CURL句柄供 curl_
![](/icons/34533set.gif)
opt
![](/icons/34533kh.gif)
, curl_exec
![](/icons/34533kh.gif)
,和 curl_close
![](/icons/34533hanshu.gif)
使用
![](/icons/34533dou2.gif)
如果可选参数被提供
![](/icons/34533dou.gif)
那么CURLOPT_URL选项将被设置成这个参数
![](/icons/34533de.gif)
值
![](/icons/34533dou2.gif)
你可以使用curl_
![](/icons/34533set.gif)
opt
![](/icons/34533kh.gif)
![](/icons/34533hanshu.gif)
人工设置
![](/icons/34533dou2.gif)
例 1.
![](/icons/34533chushi.gif)
化
![](/icons/34533yi.gif)
个新
![](/icons/34533de.gif)
CURL会话
![](/icons/34533dou.gif)
且取回
![](/icons/34533yi.gif)
个网页
$ch = curl_init
;
curl_
opt ($ch, CURLOPT_URL, “http://www.zend.com/”);
curl_
opt ($ch, CURLOPT_HEADER, 0);
curl_exec ($ch);
curl_close ($ch);
?>
参见:curl_close
![](/icons/34533kh.gif)
, curl_
![](/icons/34533set.gif)
opt
![](/icons/34533kh.gif)
2>curl_
![](/icons/34533set.gif)
opt — 为CURL
![](/icons/34533diaoyong.gif)
设置
![](/icons/34533yi.gif)
个选项
描述
bool curl_
![](/icons/34533set.gif)
opt (
![](/icons/34533int.gif)
ch,
![](/icons/34533string.gif)
option, mixed value)
curl_
![](/icons/34533set.gif)
opt
![](/icons/34533kh.gif)
![](/icons/34533hanshu.gif)
将为
![](/icons/34533yi.gif)
个CURL会话设置选项
![](/icons/34533dou2.gif)
option参数是你想要
![](/icons/34533de.gif)
设置
![](/icons/34533dou.gif)
value是这个选项给定
![](/icons/34533de.gif)
值
![](/icons/34533dou2.gif)
下列选项
![](/icons/34533de.gif)
值将被作为长整形使用(在option参数中指定):
CURLOPT_INFILESIZE: 当你上传
![](/icons/34533yi.gif)
个文件到远程站点
![](/icons/34533dou.gif)
这个选项告诉PHP你上传文件
![](/icons/34533de.gif)
大小
![](/icons/34533dou2.gif)
CURLOPT_VERBOSE: 如果你想CURL报告每
![](/icons/34533yi.gif)
件意外
![](/icons/34533de.gif)
事情
![](/icons/34533dou.gif)
设置这个选项为
![](/icons/34533yi.gif)
个非零值
![](/icons/34533dou2.gif)
CURLOPT_HEADER: 如果你想把
![](/icons/34533yi.gif)
个头包含在输出中
![](/icons/34533dou.gif)
设置这个选项为
![](/icons/34533yi.gif)
个非零值
![](/icons/34533dou2.gif)
CURLOPT_NOPROGRESS: 如果你不会PHP为CURL传输显示
![](/icons/34533yi.gif)
个进程条
![](/icons/34533dou.gif)
设置这个选项为
![](/icons/34533yi.gif)
个非零值
![](/icons/34533dou2.gif)
注意:PHP自动设置这个选项为非零值
![](/icons/34533dou.gif)
你应该仅仅为了调试
![](/icons/34533de.gif)
目
![](/icons/34533de.gif)
来改变这个选项
![](/icons/34533dou2.gif)
CURLOPT_NOBODY: 如果你不想在输出中包含body部分
![](/icons/34533dou.gif)
设置这个选项为
![](/icons/34533yi.gif)
个非零值
![](/icons/34533dou2.gif)
CURLOPT_FAILONERROR: 如果你想让PHP在发生
![](/icons/34533cuowu.gif)
(HTTP代码返回大于等于300)时
![](/icons/34533dou.gif)
不显示
![](/icons/34533dou.gif)
设置这个选项为
![](/icons/34533yi.gif)
人非零值
![](/icons/34533dou2.gif)
默认行为是返回
![](/icons/34533yi.gif)
个正常页
![](/icons/34533dou.gif)
忽略代码
![](/icons/34533dou2.gif)
CURLOPT_UPLOAD: 如果你想让PHP为上传做准备
![](/icons/34533dou.gif)
设置这个选项为
![](/icons/34533yi.gif)
个非零值
![](/icons/34533dou2.gif)
CURLOPT_POST: 如果你想PHP去做
![](/icons/34533yi.gif)
个正规
![](/icons/34533de.gif)
HTTP POST
![](/icons/34533dou.gif)
设置这个选项为
![](/icons/34533yi.gif)
个非零值
![](/icons/34533dou2.gif)
这个POST是普通
![](/icons/34533de.gif)
application/x-www-from-urlencoded 类型
![](/icons/34533dou.gif)
多数被HTML表单使用
![](/icons/34533dou2.gif)
CURLOPT_FTPLISTONLY: 设置这个选项为非零值
![](/icons/34533dou.gif)
PHP将列出FTP
![](/icons/34533de.gif)
目录名列表
![](/icons/34533dou2.gif)
CURLOPT_FTPAPPEND: 设置这个选项为
![](/icons/34533yi.gif)
个非零值
![](/icons/34533dou.gif)
PHP将应用远程文件代替覆盖它
![](/icons/34533dou2.gif)
CURLOPT_NETRC: 设置这个选项为
![](/icons/34533yi.gif)
个非零值
![](/icons/34533dou.gif)
PHP将在你
![](/icons/34533de.gif)
~./netrc 文件中查找你要建立连接
![](/icons/34533de.gif)
远程站点
![](/icons/34533de.gif)
用户名及密码
![](/icons/34533dou2.gif)
CURLOPT_FOLLOWLOCATION: 设置这个选项为
![](/icons/34533yi.gif)
个非零值(象 “Location: “)
![](/icons/34533de.gif)
头
![](/icons/34533dou.gif)
服务器会把它当做HTTP头
![](/icons/34533de.gif)
![](/icons/34533yi.gif)
部分发送(注意这是递归
![](/icons/34533de.gif)
![](/icons/34533dou.gif)
PHP将发送形如 “Location: “
![](/icons/34533de.gif)
头)
![](/icons/34533dou2.gif)
CURLOPT_PUT: 设置这个选项为
![](/icons/34533yi.gif)
个非零值去用HTTP上传
![](/icons/34533yi.gif)
个文件
![](/icons/34533dou2.gif)
要上传这个文件必须设置CURLOPT_INFILE和CURLOPT_INFILESIZE选项.
CURLOPT_MUTE: 设置这个选项为
![](/icons/34533yi.gif)
个非零值
![](/icons/34533dou.gif)
PHP对于CURL
![](/icons/34533hanshu.gif)
将完全沉默
![](/icons/34533dou2.gif)
CURLOPT_TIMEOUT: 设置
![](/icons/34533yi.gif)
个长整形数
![](/icons/34533dou.gif)
作为最大延续多少秒
![](/icons/34533dou2.gif)
CURLOPT_LOW_SPEED_LIMIT: 设置
![](/icons/34533yi.gif)
个长整形数
![](/icons/34533dou.gif)
控制传送多少字节
![](/icons/34533dou2.gif)
CURLOPT_LOW_SPEED_TIME: 设置
![](/icons/34533yi.gif)
个长整形数
![](/icons/34533dou.gif)
控制多少秒传送CURLOPT_LOW_SPEED_LIMIT规定
![](/icons/34533de.gif)
字节数
![](/icons/34533dou2.gif)
CURLOPT_RESUME_FROM: 传递
![](/icons/34533yi.gif)
个包含字节偏移地址
![](/icons/34533de.gif)
长整形参数
![](/icons/34533dou.gif)
(你想转移到
![](/icons/34533de.gif)
开始表单)
![](/icons/34533dou2.gif)
CURLOPT_SSLVERSION: 传递
![](/icons/34533yi.gif)
个包含SSL版本
![](/icons/34533de.gif)
长参数
![](/icons/34533dou2.gif)
默认PHP将被它自己努力
![](/icons/34533de.gif)
确定
![](/icons/34533dou.gif)
在更多
![](/icons/34533de.gif)
安全中你必须手工设置
![](/icons/34533dou2.gif)
CURLOPT_TIMECONDITION: 传递
![](/icons/34533yi.gif)
个长参数
![](/icons/34533dou.gif)
指定如何处理CURLOPT_TIMEVALUE参数
![](/icons/34533dou2.gif)
你可以设置这个参数为TIMECOND_IFMODSINCE 或TIMECOND_ISUNMODSINCE
![](/icons/34533dou2.gif)
这仅用于HTTP
![](/icons/34533dou2.gif)
CURLOPT_TIMEVALUE: 传递
![](/icons/34533yi.gif)
个从1970-1-1开始到现在
![](/icons/34533de.gif)
秒数
![](/icons/34533dou2.gif)
这个时间将被CURLOPT_TIMEVALUE选项作为指定值使用
![](/icons/34533dou.gif)
或被默认TIMECOND_IFMODSINCE使用
![](/icons/34533dou2.gif)
下列选项
![](/icons/34533de.gif)
值将被作为
![](/icons/34533zifu.gif)
串:
CURLOPT_URL: 这是你想用PHP取回
![](/icons/34533de.gif)
URL地址
![](/icons/34533dou2.gif)
你也可以在用curl_init
![](/icons/34533kh.gif)
![](/icons/34533hanshu.gif)
![](/icons/34533chushi.gif)
化时设置这个选项
![](/icons/34533dou2.gif)
CURLOPT_USERPWD: 传递
![](/icons/34533yi.gif)
个形如[username]:[password]风格
![](/icons/34533de.gif)
![](/icons/34533zifu.gif)
串,作用PHP去连接
![](/icons/34533dou2.gif)
CURLOPT_PROXYUSERPWD: 传递
![](/icons/34533yi.gif)
个形如[username]:[password] 格式
![](/icons/34533de.gif)
![](/icons/34533zifu.gif)
串去连接HTTP代理
![](/icons/34533dou2.gif)
CURLOPT_RANGE: 传递
![](/icons/34533yi.gif)
个你想指定
![](/icons/34533de.gif)
范围
![](/icons/34533dou2.gif)
它应该是”X-Y”格式
![](/icons/34533dou.gif)
X或Y是被除外
![](/icons/34533de.gif)
![](/icons/34533dou2.gif)
HTTP传送同样支持几个间隔
![](/icons/34533dou.gif)
用逗句来分隔(X-Y,N-M)
![](/icons/34533dou2.gif)
CURLOPT_POSTFIELDS: 传递
![](/icons/34533yi.gif)
个作为HTTP “POST”操作
![](/icons/34533de.gif)
所有数据
![](/icons/34533de.gif)
![](/icons/34533zifu.gif)
串
![](/icons/34533dou2.gif)
CURLOPT_REFERER: 在HTTP请求中包含
![](/icons/34533yi.gif)
个”referer”头
![](/icons/34533de.gif)
![](/icons/34533zifu.gif)
串
![](/icons/34533dou2.gif)
CURLOPT_USERAGENT: 在HTTP请求中包含
![](/icons/34533yi.gif)
个”user-agent”头
![](/icons/34533de.gif)
![](/icons/34533zifu.gif)
串
![](/icons/34533dou2.gif)
CURLOPT_FTPPORT: 传递
![](/icons/34533yi.gif)
个包含被ftp “POST”指令使用
![](/icons/34533de.gif)
IP地址
![](/icons/34533dou2.gif)
这个POST指令告诉远程服务器去连接我们指定
![](/icons/34533de.gif)
IP地址
![](/icons/34533dou2.gif)
这个
![](/icons/34533zifu.gif)
串可以是
![](/icons/34533yi.gif)
个IP地址
![](/icons/34533dou.gif)
![](/icons/34533yi.gif)
个主机名
![](/icons/34533dou.gif)
![](/icons/34533yi.gif)
个网络界面名(在UNIX下)
![](/icons/34533dou.gif)
或是’-’(使用系统默认IP地址)
![](/icons/34533dou2.gif)
CURLOPT_COOKIE: 传递
![](/icons/34533yi.gif)
个包含HTTP cookie
![](/icons/34533de.gif)
头连接
![](/icons/34533dou2.gif)
CURLOPT_SSLCERT: 传递
![](/icons/34533yi.gif)
个包含PEM格式证书
![](/icons/34533de.gif)
![](/icons/34533zifu.gif)
串
![](/icons/34533dou2.gif)
CURLOPT_SSLCERTPASSWD: 传递
![](/icons/34533yi.gif)
个包含使用CURLOPT_SSLCERT证书必需
![](/icons/34533de.gif)
密码
![](/icons/34533dou2.gif)
CURLOPT_COOKIEFILE: 传递
![](/icons/34533yi.gif)
个包含cookie数据
![](/icons/34533de.gif)
文件
![](/icons/34533de.gif)
名字
![](/icons/34533de.gif)
![](/icons/34533zifu.gif)
串
![](/icons/34533dou2.gif)
这个cookie文件可以是Netscape格式
![](/icons/34533dou.gif)
或是堆存在文件中
![](/icons/34533de.gif)
HTTP风格
![](/icons/34533de.gif)
头
![](/icons/34533dou2.gif)
CURLOPT_CUSTOMREQUEST: 当进行HTTP请求时
![](/icons/34533dou.gif)
传递
![](/icons/34533yi.gif)
个
![](/icons/34533zifu.gif)
被GET或HEAD使用
![](/icons/34533dou2.gif)
为进行DELETE或其它操作是有益
![](/icons/34533de.gif)
![](/icons/34533dou.gif)
更Pass a
![](/icons/34533string.gif)
to be used instead of GET or HEAD when doing an HTTP request. This is useful for doing or another, more obscure, HTTP request.
注意: 在确认你
![](/icons/34533de.gif)
服务器支持命令先不要去这样做
![](/icons/34533dou2.gif)
下列
![](/icons/34533de.gif)
选项要求
![](/icons/34533yi.gif)
个文件描述(通过使用fopen
![](/icons/34533kh.gif)
![](/icons/34533hanshu.gif)
获得):
CURLOPT_FILE: 这个文件将是你放置传送
![](/icons/34533de.gif)
输出文件
![](/icons/34533dou.gif)
默认是STDOUT.
CURLOPT_INFILE: 这个文件是你传送过来
![](/icons/34533de.gif)
输入文件
![](/icons/34533dou2.gif)
CURLOPT_WRITEHEADER: 这个文件写有你输出
![](/icons/34533de.gif)
头部分
![](/icons/34533dou2.gif)
CURLOPT_STDERR: 这个文件写有
![](/icons/34533cuowu.gif)
而不是stderr
![](/icons/34533dou2.gif)
3>curl_exec — 执行
![](/icons/34533yi.gif)
个CURL会话
描述
bool curl_exec (
![](/icons/34533int.gif)
ch)
在你
![](/icons/34533chushi.gif)
化
![](/icons/34533yi.gif)
个CURL会话
![](/icons/34533dou.gif)
及为这个会话设置了所有
![](/icons/34533de.gif)
选项后
![](/icons/34533dou.gif)
这个
![](/icons/34533hanshu.gif)
将被
![](/icons/34533diaoyong.gif)
![](/icons/34533dou2.gif)
它
![](/icons/34533de.gif)
目
![](/icons/34533de.gif)
仅仅是执行预先确定
![](/icons/34533de.gif)
CURL会话(通过给定
![](/icons/34533de.gif)
ch参数)
![](/icons/34533dou2.gif)
4>curl_close – 关闭
![](/icons/34533yi.gif)
个CURL会话
描述
void curl_close (
![](/icons/34533int.gif)
ch)
这个
![](/icons/34533hanshu.gif)
关闭
![](/icons/34533yi.gif)
个CURL会话
![](/icons/34533dou.gif)
并且释放所有
![](/icons/34533de.gif)
资源
![](/icons/34533dou2.gif)
CURL句柄(ch参数)也被删除
![](/icons/34533dou2.gif)
5>curl_version — 返回当前CURL版本
描述
![](/icons/34533string.gif)
curl_version (void)
curl_version
![](/icons/34533kh.gif)
![](/icons/34533hanshu.gif)
返回
![](/icons/34533yi.gif)
个包含CURL版本
![](/icons/34533de.gif)
![](/icons/34533zifu.gif)
串