FTP 和 FTPS

PHP 3,PHP 4,PHP 5。自 PHP 4.3.0 起支援 ftps://

  • 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

容許對已有檔案進行唯讀訪問以及通過 FTP 建立新檔案。若果伺服器不支援被動模式的 ftp,則連線會失敗。

可以用讀或是寫的模式開啟檔案,但不能同時是讀寫。若果 ftp 伺服器上已經存在遠端檔案而試圖用寫的模式開啟但又沒有指定 overwrite 的上下文選項,則連線會失敗。若果想通過 ftp 更新已有的檔案,則在上下文中指定 overwrite 選項並用寫的模式開啟。還可以用 FTP 增加

追加檔案: 自 PHP 5.0.0 起可以通過 ftp:// URL 協定來追加檔案。在之前的版本試圖通過 ftp:// 來追加檔案會導致失敗。

ftps:// 是 PHP 4.3.0 引進的。它和 ftp:// 相同,但是嘗試和 ftp 伺服器建立一個安全連線。若果伺服器不支援 SSL,則會返回一個普通的未加密的 ftp 連線。

注: 自 PHP 4.3.0 起開始支援 FTPS,需要在編譯時加入 OpenSSL 的支援。

表格 M-4. Wrapper Summary

屬性PHP 4PHP 5
受限於 allow_url_fopen
容許讀取
容許寫入是(僅容許寫入新檔案)是(容許使用 overwrite 參數覆蓋新檔案)
容許附加是(PHP 5.0.0 或更新版本)
容許同時讀寫
支援 stat() PHP 5.0.0:僅在 filesize()filetype()file_exists()is_file()is_dir() 中支援。PHP 5.1.0:filemtime()
支援 unlink()
支援 rename()
支援 mkdir()
支援 rmdir()

表格 M-5. 上下文選項(自 PHP 5.0 起)

名稱用法預設值
overwrite容許覆蓋遠端伺服器上已存在的檔案。僅適用於寫入模式(上傳)。FALSE(禁用)
resume_pos開始傳輸的檔案偏移量。僅適用於讀取模式(下載)。0(檔案頭)
proxy(PHP 5.1.0 或更高版本) 通過 HTTP 代理伺服器對 FTP 發出請求 僅能進行檔案讀取動作。 例如:tcp://squid.example.com:8000  

底層套接字流上下文選項(Underlying socket stream context options): 有可能通過底層傳輸(underlying transport)支援附加的上下文選項。對於 ftp:// 流,參考 tcp:// 傳輸的上下文選項。對於 ftps:// 流,參考 ssl:// 傳輸的上下文選項。