<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >FTP 和 FTPS</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="支持的协议/封装协议列表" HREF="wrappers.html"><LINK REL="PREVIOUS" TITLE="HTTP 和 HTTPS" HREF="wrappers.http.html"><LINK REL="NEXT" TITLE="PHP 输入/输出流" HREF="wrappers.php.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="section" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PHP 手册</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="wrappers.http.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >附录 N. 支持的协议/封装协议列表</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="wrappers.php.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="wrappers.ftp" >FTP 和 FTPS</A ></H1 ><P >PHP 3,PHP 4,PHP 5。自 PHP 4.3.0 起支持 <TT CLASS="filename" >ftps://</TT ></P ><P ></P ><UL ><LI ><P ><TT CLASS="filename" >ftp://example.com/pub/file.txt</TT ></P ></LI ><LI ><P ><TT CLASS="filename" >ftp://user:password@example.com/pub/file.txt</TT ></P ></LI ><LI ><P ><TT CLASS="filename" >ftps://example.com/pub/file.txt</TT ></P ></LI ><LI ><P ><TT CLASS="filename" >ftps://user:password@example.com/pub/file.txt</TT ></P ></LI ></UL ><P > 允许对已有文件进行只读访问以及通过 FTP 建立新文件。如果服务器不支持被动模式的 ftp,则连接会失败。 </P ><P > 可以用读或者写的方式打开文件,但不能同时是读写。如果 ftp 服务器上已经存在远程文件而试图用写的方式打开但又没有指定 <TT CLASS="literal" >overwrite</TT > 的上下文选项,则连接会失败。如果想通过 ftp 更新已有的文件,则在上下文中指定 <TT CLASS="literal" >overwrite</TT > 选项并用写的方式打开。还可以用 <A HREF="ref.ftp.html" >FTP 扩展</A >。 </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >追加文件: </B > 自 PHP 5.0.0 起可以通过 <TT CLASS="literal" >ftp://</TT > URL 协议来追加文件。在之前的版本试图通过 <TT CLASS="literal" >ftp://</TT > 来追加文件会导致失败。 </P ></BLOCKQUOTE ></DIV ><P > <TT CLASS="filename" >ftps://</TT > 是 PHP 4.3.0 引进的。它和 <TT CLASS="filename" >ftp://</TT > 相同,但是尝试和 ftp 服务器建立一个安全连接。如果服务器不支持 SSL,则会返回一个普通的未加密的 ftp 连接。 </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 自 PHP 4.3.0 起开始支持 FTPS,需要在编译时加入 OpenSSL 的支持。 </P ></BLOCKQUOTE ></DIV ><P > <DIV CLASS="table" ><A NAME="AEN302829" ></A ><P ><B >表 N-4. Wrapper Summary</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL><COL><COL><THEAD ><TR ><TH >属性</TH ><TH >PHP 4</TH ><TH >PHP 5</TH ></TR ></THEAD ><TBODY ><TR ><TD >受限于 <A HREF="ref.filesystem.html#ini.allow-url-fopen" >allow_url_fopen</A >。</TD ><TD >是</TD ><TD >是</TD ></TR ><TR ><TD >允许读取</TD ><TD >是</TD ><TD >是</TD ></TR ><TR ><TD >允许写入</TD ><TD >是(仅允许写入新文件)</TD ><TD >是(允许使用 <CODE CLASS="parameter" >overwrite</CODE > 参数覆盖新文件)</TD ></TR ><TR ><TD >允许附加</TD ><TD >否</TD ><TD >是(<TT CLASS="literal" >PHP 5.0.0</TT > 或更新版本)</TD ></TR ><TR ><TD >允许同时读写</TD ><TD >否</TD ><TD >否</TD ></TR ><TR ><TD >支持 <A HREF="function.stat.html" ><B CLASS="function" >stat()</B ></A ></TD ><TD >否</TD ><TD > PHP 5.0.0:仅在 <A HREF="function.filesize.html" ><B CLASS="function" >filesize()</B ></A >,<A HREF="function.filetype.html" ><B CLASS="function" >filetype()</B ></A >,<A HREF="function.file-exists.html" ><B CLASS="function" >file_exists()</B ></A >,<A HREF="function.is-file.html" ><B CLASS="function" >is_file()</B ></A > 和 <A HREF="function.is-dir.html" ><B CLASS="function" >is_dir()</B ></A > 中支持。PHP 5.1.0:<A HREF="function.filemtime.html" ><B CLASS="function" >filemtime()</B ></A >。 </TD ></TR ><TR ><TD >支持 <A HREF="function.unlink.html" ><B CLASS="function" >unlink()</B ></A ></TD ><TD >否</TD ><TD >是</TD ></TR ><TR ><TD >支持 <A HREF="function.rename.html" ><B CLASS="function" >rename()</B ></A ></TD ><TD >否</TD ><TD >是</TD ></TR ><TR ><TD >支持 <A HREF="function.mkdir.html" ><B CLASS="function" >mkdir()</B ></A ></TD ><TD >否</TD ><TD >是</TD ></TR ><TR ><TD >支持 <A HREF="function.rmdir.html" ><B CLASS="function" >rmdir()</B ></A ></TD ><TD >否</TD ><TD >是</TD ></TR ></TBODY ></TABLE ></DIV > </P ><P > <DIV CLASS="table" ><A NAME="AEN302893" ></A ><P ><B >表 N-5. 上下文选项(自 PHP 5.0 起)</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL><COL><COL><THEAD ><TR ><TH >名称</TH ><TH >用法</TH ><TH >默认值</TH ></TR ></THEAD ><TBODY ><TR ><TD ><TT CLASS="literal" >overwrite</TT ></TD ><TD >允许覆盖远程服务器上已存在的文件。仅适用于写入模式(上传)。</TD ><TD ><TT CLASS="constant" ><B >FALSE</B ></TT >(禁用)</TD ></TR ><TR ><TD ><TT CLASS="literal" >resume_pos</TT ></TD ><TD >开始传输的文件偏移量。仅适用于读取模式(下载)。</TD ><TD >0(文件头)</TD ></TR ><TR ><TD ><TT CLASS="literal" >proxy</TT >(PHP 5.1.0 或更高版本)</TD ><TD > 通过 HTTP 代理服务器对 FTP 发出请求 仅能进行文件读取操作。 例如:<TT CLASS="literal" >tcp://squid.example.com:8000</TT > </TD ><TD > </TD ></TR ></TBODY ></TABLE ></DIV > </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >底层套接字流上下文选项(Underlying socket stream context options): </B > 有可能通过<A HREF="transports.html#transports.inet" >底层传输(underlying transport)</A >支持附加的上下文选项。对于 <TT CLASS="literal" >ftp://</TT > 流,参考 <TT CLASS="literal" >tcp://</TT > 传输的上下文选项。对于 <TT CLASS="literal" >ftps://</TT > 流,参考 <TT CLASS="literal" >ssl://</TT > 传输的上下文选项。 </P ></BLOCKQUOTE ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="wrappers.http.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >起始页</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="wrappers.php.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >HTTP 和 HTTPS</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="wrappers.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >PHP 输入/输出流</TD ></TR ></TABLE ></DIV ></BODY ></HTML >