XLIII. FTP 函數

簡介

FTP 函數可以說明實現客戶機與伺服器之間標準檔案傳輸協定(FTP)的規範進行檔案傳輸。FTP 的詳細定義參見 http://www.faqs.org/rfcs/rfc959。此增加庫用來使運行的腳本對 FTP 伺服器進行廣泛的控制。若果只想在一個 FTP 伺服器上讀寫檔案,考慮使用檔案系統函數中的 ftp:// wrapper,它提供了簡單和更直觀的介面。

需求

要編譯本增加模組無需外部庫檔案。

安裝

In order to use FTP functions with your PHP configuration, you should add the --enable-ftp option when installing PHP 4 or greater or --with-ftp when using PHP 3.

PHP 的 Windows 版本已經內建該增加模組的支援。無需加載任何附加增加庫即可使用這些函數。

運行時配置

本增加模組在 php.ini 中未定義任何配置選項。

資源類型

在 FTP 模組中使用了一種資源類型,該資源類型為 FTP 的連線識別碼,由函數 ftp_connect()ftp_ssl_connect() 產生。

預定義常量

以下常量由本增加模組定義,因此只有在本增加模組被編譯到 PHP 中,或是在運行時被動態加載後才有效。

FTP_ASCII (integer)

FTP_TEXT (integer)

FTP_BINARY (integer)

FTP_IMAGE (integer)

FTP_TIMEOUT_SEC (integer)

參考函數 ftp_set_option()

下列變量在 PHP 4.3.0 以後版本中被加入。

FTP_AUTOSEEK (integer)

參考函數 ftp_set_option()

FTP_AUTORESUME (integer)

為 GET 和 PUT 請求自動決定還原和開始的位置 (只能工作在 FTP_AUTOSEEK 開啟的情況下)

FTP_FAILED (integer)

異步傳輸失敗

FTP_FINISHED (integer)

異步傳輸成功

FTP_MOREDATA (integer)

異步傳輸是活動狀態的

範例

例子 1. FTP 例子

<?php
// set up basic connection
$conn_id ftp_connect($ftp_server);

// login with username and password
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

// check connection
if ((!$conn_id) || (!$login_result)) {
        echo 
"FTP connection has failed!";
        echo 
"Attempted to connect to $ftp_server for user $ftp_user_name";
        exit;
    } else {
        echo 
"Connected to $ftp_server, for user $ftp_user_name";
    }

// upload the file
$upload ftp_put($conn_id$destination_file$source_fileFTP_BINARY);

// check upload status
if (!$upload) {
        echo 
"FTP upload has failed!";
    } else {
        echo 
"Uploaded $source_file to $ftp_server as $destination_file";
    }

// close the FTP stream
ftp_close($conn_id);
?>

目錄
ftp_alloc -- Allocates space for a file to be uploaded
ftp_cdup -- 切換到現用的目錄的父目錄
ftp_chdir -- 在 FTP 伺服器上切換現用的目錄
ftp_chmod -- Set permissions on a file via FTP
ftp_close -- 關閉一個活動的 FTP 連線
ftp_connect -- 建立一個新的 FTP 連線
ftp_delete -- 移除 FTP 伺服器上的一個檔案
ftp_exec -- 請求運行一條 FTP 指令
ftp_fget -- 從 FTP 伺服器上下載一個檔案並儲存到本地一個已經開啟的檔案中
ftp_fput -- 上傳一個已經開啟的檔案到 FTP 伺服器
ftp_get_option -- 返回現用的 FTP 連線的各種不同的選項設定
ftp_get -- 從 FTP 伺服器上下載一個檔案
ftp_login -- 登入 FTP 伺服器
ftp_mdtm -- 返回指定檔案的最後修改時間
ftp_mkdir -- 建立新目錄
ftp_nb_continue -- 連續取得/傳送檔案(non-blocking)
ftp_nb_fget -- Retrieves a file from the FTP server and writes it to an open file (non-blocking)
ftp_nb_fput -- Stores a file from an open file to the FTP server (non-blocking)
ftp_nb_get -- 從 FTP 伺服器上取得檔案並寫入本地檔案(non-blocking)
ftp_nb_put -- 存儲一個檔案至 FTP 伺服器(non-blocking)
ftp_nlist -- 返回給定目錄的檔案清單
ftp_pasv -- 返回現用的 FTP 被動模式是否開啟
ftp_put -- 上傳檔案到 FTP 伺服器
ftp_pwd -- 返回現用的目錄名
ftp_quit -- ftp_close() 的別名
ftp_raw -- Sends an arbitrary command to an FTP server
ftp_rawlist -- 返回指定目錄下檔案的詳細清單
ftp_rename -- 變更 FTP 伺服器上特殊的檔案名
ftp_rmdir -- 移除一個目錄
ftp_set_option -- 設定各種 FTP 運行時選項
ftp_site -- 向伺服器傳送 SITE 指令
ftp_size -- 返回指定檔案的大小
ftp_ssl_connect -- Opens an Secure SSL-FTP connection
ftp_systype -- 返回遠端 FTP 伺服器的系統類型