首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 入門

PHP FTP 函數完整參考與實作指南

     編輯:PHP 入門

PHP FTP 函數完整參考與實作指南


簡介

FTP 函數透過檔案傳輸協定 (FTP) 提供對遠端檔案伺服器的用戶端存取。支援連線登入、上傳下載、重命名、刪除、目錄操作、權限設定等細粒度控制。若僅需簡單讀寫,建議使用 fopen() 搭配 ftp:// 包裝器。

Windows 版 PHP 內建 FTP 支援;Linux 需編譯時加入 --enable-ftp (PHP 4+) 或 --with-ftp (PHP 3)。


核心函數分類速查

函數說明PHP 版本
ftp_connect()建立 FTP 連線3
ftp_ssl_connect()建立 SSL 加密 FTP 連線4
ftp_login()登入 FTP 伺服器3
ftp_close()關閉 FTP 連線4
ftp_pasv()設定被動模式開關3
ftp_chdir()切換遠端目錄3
ftp_cdup()切換到父目錄3
ftp_pwd()取得目前遠端目錄名稱3
ftp_mkdir()建立遠端目錄3
ftp_rmdir()刪除遠端目錄3
ftp_nlist()取得指定目錄檔案列表(簡短)3
ftp_rawlist()取得詳細檔案列表(含權限、大小、時間)3
ftp_get()下載檔案到本地3
ftp_fget()下載檔案到已開啟的本地檔案指標3
ftp_put()上傳本地檔案到伺服器3
ftp_fput()上傳已開啟的本地檔案指標到伺服器3
ftp_nb_get()非阻塞下載4
ftp_nb_put()非阻塞上傳4
ftp_nb_fget()非阻塞下載到檔案指標4
ftp_nb_fput()非阻塞上傳檔案指標4
ftp_nb_continue()繼續非阻塞傳輸4
ftp_delete()刪除遠端檔案3
ftp_rename()重命名遠端檔案/目錄3
ftp_chmod()設定遠端檔案權限5
ftp_size()取得遠端檔案大小3
ftp_mdtm()取得遠端檔案最後修改時間3
ftp_site()發送 SITE 指令3
ftp_exec()在伺服器執行指令4
ftp_raw()發送原始 FTP 指令5
ftp_systype()取得伺服器系統類型識別碼3
ftp_get_option()取得連線執行期選項4
ftp_set_option()設定連線執行期選項4
ftp_alloc()為上傳檔案預留空間5
ftp_quit()ftp_close() 別名3

常用常數

常數說明PHP 版本
FTP_ASCII / FTP_TEXTASCII 傳輸模式3
FTP_BINARY / FTP_IMAGE二進制傳輸模式3
FTP_TIMEOUT_SEC逾時秒數選項3
FTP_AUTOSEEK自動定位續傳位置4
FTP_AUTORESUME自動決定恢復/開始位置 (GET/PUT)4
FTP_FAILED非同步傳輸失敗4
FTP_FINISHED非同步傳輸完成4
FTP_MOREDATA非同步傳輸進行中4

完整上傳下載範例

<?php
$host = 'ftp.example.com';
$user = 'username';
$pass = 'password';
$local_file = 'local.txt';
$remote_file = 'remote.txt';

$conn = ftp_connect($host) or die('無法連線 FTP 伺服器');
ftp_login($conn, $user, $pass) or die('登入失敗');
ftp_pasv($conn, true); // 建議開啟被動模式

// 上傳
if (ftp_put($conn, $remote_file, $local_file, FTP_BINARY)) {
    echo "上傳成功\n";
} else {
    echo "上傳失敗\n";
}

// 下載
if (ftp_get($conn, $local_file . '.bak', $remote_file, FTP_BINARY)) {
    echo "下載成功\n";
} else {
    echo "下載失敗\n";
}

ftp_close($conn);
?>

最佳實踐

  • 生產環境優先使用 FTPS (ftp_ssl_connect) 或 SFTP (需 SSH2 擴展) 保障傳輸安全。
  • 大檔案傳輸建議使用非阻塞函數 (ftp_nb_*) 避免腳本逾時。
  • 上傳前以 ftp_alloc() 預留空間可減少伺服器拒絕風險。
  • 操作完成務必 ftp_close() 釋放資源。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved