助力软件开发企业降本增效 PHP / java源码系统,只需一次付费,代码终身使用! 广告
允许通过 FTP 读取存在的文件,以及创建新文件。 如果服务器不支持被动(passive)模式的 FTP,连接会失败 打开文件后你既可以读也可以写,但是不能同时进行。 当远程文件已经存在于 ftp 服务器上,如果尝试打开并写入文件的时候, 未指定上下文(context)选项*overwrite*,连接会失败。 如果要通过 FTP 覆盖存在的文件, 指定上下文(context)的*overwrite*选项来打开、写入。 另外可使用[FTP 扩展](https://www.php.net/manual/zh/ref.ftp.php)来代替。 如果你设置了php.ini中的[from](https://www.php.net/manual/zh/filesystem.configuration.php#ini.from)指令, 这个值会作为匿名(anonymous)ftp 的密码。 ### 用法 * ftp://example.com/pub/file.txt * ftp://user:password@example.com/pub/file.txt * ftps://example.com/pub/file.txt * ftps://user:password@example.com/pub/file.txt **封装协议概要** | 属性 | PHP 4 | PHP 5 | | --- | --- | --- | | 受[allow\_url\_fopen](https://www.php.net/manual/zh/filesystem.configuration.php#ini.allow-url-fopen)影响 | Yes | Yes | | 允许读取 | Yes | Yes | | 允许写入 | Yes (仅支持新文件) | Yes (新文件/启用`overwrite`后已存在的文件) | | 允许添加 | No | Yes | | 允许同时读和写 | No | No | | 支持[stat()](https://www.php.net/manual/zh/function.stat.php) | No | 自 5.0.0 起:仅仅[filesize()](https://www.php.net/manual/zh/function.filesize.php)、[filetype()](https://www.php.net/manual/zh/function.filetype.php)、[file\_exists()](https://www.php.net/manual/zh/function.file-exists.php)、[is\_file()](https://www.php.net/manual/zh/function.is-file.php)和[is\_dir()](https://www.php.net/manual/zh/function.is-dir.php)。 自 PHP 5.1.0 起:[filemtime()](https://www.php.net/ma[data://协议](data--.md)nual/zh/function.filemtime.php)。 | | 支持[unlink()](https://www.php.net/manual/zh/function.unlink.php) | No | Yes | | 支持[rename()](https://www.php.net/manual/zh/function.rename.php) | No | Yes | | 支持[mkdir()](https://www.php.net/manual/zh/function.mkdir.php) | No | Yes | | 支持[rmdir()](https://www.php.net/manual/zh/function.rmdir.php) | No | Yes | >[danger]FTPS 仅在[openssl](https://www.php.net/manual/zh/book.openssl.php)扩展开启时有效。 如果服务器不支持 SSL,这个连接会降级(falls back)到普通未加密的 ftp [FTP context options](https://www.php.net/manual/zh/context.ftp.php) ``` $str ="replace all contenents"; $filew="ftp://gufo:gufo@192.168.1.55:21/jj.php"; $opts = array('ftp' => array('overwrite' => true)); $context = stream_context_create($opts); $strwri = file_put_contents($filew,$str,LOCK_EX,$context); ```