PHP FTP學習筆記

來源:互聯網
上載者:User
ftp_alloc() 為要上傳到 FTP 伺服器的檔案分配空間。       
ftp_cdup() 把目前的目錄改變為 FTP 伺服器上的父目錄。
ftp_chdir() 改變 FTP 伺服器上的目前的目錄。
ftp_chmod() 通過 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 伺服器建立一個新目錄。
ftp_nb_continue() 連續擷取/傳送檔案 (non-blocking)。
ftp_nb_fget()
從FTP伺服器上下載檔案並儲存到本地已經開啟的檔案中(non-blocking)
ftp_nb_fput()
上傳已開啟的檔案,並在FTP伺服器上把它儲存為檔案(non-blocking)。
ftp_nb_get() 從 FTP 伺服器下載檔案 (non-blocking)。
ftp_nb_put() 把檔案上傳到伺服器 (non-blocking)。
ftp_nlist() 返回指定目錄的檔案清單。
ftp_pasv() 返回當前 FTP 被動模式是否開啟。
ftp_put() 把檔案上傳到伺服器。
ftp_pwd() 返回目前的目錄名稱。
ftp_quit() ftp_close() 的別名。
ftp_raw() 向 FTP 伺服器發送一個 raw 命令。
ftp_rawlist() 返回指定目錄中檔案的詳細列表。
ftp_rename() 重新命名 FTP 伺服器上的檔案或目錄。
ftp_rmdir() 刪除 FTP 伺服器上的目錄。
ftp_set_option() 設定各種 FTP 運行時選項。
ftp_site() 向伺服器發送 SITE 命令。
ftp_size() 返回指定檔案的大小。
ftp_ssl_connect() 開啟一個安全的 SSL-FTP 串連。
ftp_systype() 返回遠程 FTP 伺服器的系統類別型標識符。


class FTPUtil {

public $off; // 返回操作狀態(成功/失敗)
public $conn_id; // FTP串連

/**
* 方法:FTP串連
* @FTP_HOST -- FTP主機
* @FTP_PORT -- 連接埠
* @FTP_USER -- 使用者名稱
* @FTP_PASS -- 密碼
*/
function __construct($FTP_HOST, $FTP_PORT, $FTP_USER, $FTP_PASS) {
$this->conn_id = @ftp_connect($FTP_HOST, $FTP_PORT) or die ('FTP伺服器串連失敗');

@ftp_login($this->conn_id, $FTP_USER, $FTP_PASS) or die('FTP伺服器登入失敗');
@ftp_pasv($this->conn_id, 1);// 開啟被動類比
}

/**
* 方法:上傳檔案
* @path -- 本地路徑
* @newPath -- 上傳路徑
* @type -- 若目標目錄不存在則建立
*/
function up_file($path, $newPath, $type = true) {
if ($type) {
$this->dir_mkdirs($newPath);
}

$this->off = @ftp_put($this->conn_id, $newPath, $path, FTP_BINARY);
if (!$this->off) {
echo '檔案上傳失敗,請檢查許可權及路徑是否正確!';
}
}

/**
* 方法:移動檔案
* @path -- 原路徑
* @newPath -- 新路徑
* @type -- 若目標目錄不存在則建立
*/
function move_file($path, $newPath, $type = true) {
if ($type) {
$this->dir_mkdirs($newPath);
}

$this->off = @ftp_rename($this->conn_id, $path, $newPath);
if (!$this->off) {
echo "檔案移動失敗,請檢查許可權及原路徑是否正確!";
}
}

/**
* 方法:複製檔案
* 說明:由於FTP無複製命令,本方法變通操作為:下載後再上傳到新的路徑
* @path -- 原路徑
* @newPath -- 新路徑
* @type -- 若目標目錄不存在則建立
*/
function copy_file($path, $newPath, $type = true) {
$downPath = "c:/tmp.dat";

$this->off = @ftp_get($this->conn_id, $downPath, $path, FTP_BINARY);// 下載
if (!$this->off) {
echo "檔案複製失敗,請檢查許可權及原路徑是否正確!";
}
$this->up_file($downPath, $newPath, $type);
}

/**
* 方法:刪除檔案
* @path -- 路徑
*/
function del_file($path) {
$this->off = @ftp_delete($this->conn_id, $path);
if (!$this->off) {
echo "檔案刪除失敗,請檢查許可權及路徑是否正確!";
}
}

/**
* 方法:組建目錄
* @path -- 路徑
*/
function dir_mkdirs($path) {
$path_arr = explode('/', $path); // 取目錄數組
$file_name = array_pop($path_arr); // 彈出檔案名稱
$path_div = count($path_arr); // 取層數

foreach ($path_arr as $val) { // 建立目錄
if (@ftp_chdir($this->conn_id, $val) == FALSE) {
$tmp = @ftp_mkdir($this->conn_id, $val);
if ($tmp == FALSE) {
echo "目錄建立失敗,請檢查許可權及路徑是否正確!";
exit;
}
@ftp_chdir($this->conn_id, $val);
}
}

for ($i = 1; $i <= $path_div; $i++) { // 回退到根
@ftp_cdup($this->conn_id);
}
}

/**
* 方法:關閉FTP串連
*/
function close() {
@ftp_close($this->conn_id);
}
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.