[精讚] [會員登入]
2751

[PHP] 使用FTP

PHP 上使用 FTP 的寫法

分享此文連結 //n.sfs.tw/10963

分享連結 [PHP] 使用FTP@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-25 13:26:38 最後編修
2017-04-07 11:51:06 By 張○○
 

自動目錄

傳統上,網頁檔案上傳方法是把php的暫時檔拷到上傳目錄。可是如果在伺服器間傳檔,可使用 FTP 來處理。

連線

參數分別是 HOST, PORT, TIMEOUT

$conn = ftp_connect("10.200.0.1", 21, 60) or die("Connect FTP Server Fail"); 

登入

$ok =ftp_login($conn, "account", "password");

if($ok) // logined

if(!$ok) // login failed

使用被動模式

這個指令必須在ftp_login 後立即使用,第2個參數設為true即為被動模式,設為false關閉被動模式。

ftp_pasv($conn, true);

路徑

剛登入的路徑應該在你登入account的家目錄 

$pwd= ftp_pwd($conn);  // /home/your_account/

//改變路徑 chdir  進到 /home/youracc/path/to/

ftp_chdir( $conn,  "path/to");

//移到上一層 /home/youracc/path/

ftp_cdup( $conn);

上傳及下載

// 取回檔案,使用二進位的方式

if (ftp_get($conn, "local_file", "server_file", FTP_BINARY)) {
   echo "Successfully written to local_file\n";
} else {
   echo "There was a problem\n";
}

//上傳一個檔案,注意傳送模式為 FTP_ASCII

if (ftp_put($conn, "remote_file", "local_file", FTP_ASCII)) {
   echo "successfully uploaded file\n";
} else {
   echo "There was a problem while uploading file\n";
}

// 刪除檔案
ftp_delete($conn, "FILENAME");

關閉連結

ftp_close($conn);

補充說明

上傳檔案有 ftp_put, ftp_fput, ftp_nb_put, ftp_nb_fput 這幾個函數,同樣的下載也有對應的四個函數,差別在哪?
ftp_put -- 上傳檔案
ftp_fput -- 上傳檔案指標
ftp_nb_put  -- 非同步法上傳檔案
ftp_nb_fput  -- 非同步法上傳檔案指標

延伸閱讀

FTP的主動模式及被動模式

參考資料

[1] PHP 官網 http://tw.php.net/manual/en/ref.ftp.php

END

你可能感興趣的文章

PHP程式經驗 #2 -- print和echo的差異 常在寫php的人一定會想知道echo和print這兩個函數有什麼不一樣 驗證 1. 比較print 和echo 函式的執

[PHP] 處理mail 函式的標題中文字亂碼 PHP的mail函式若標題有中文字得先處理過,否則收信者會看到亂碼

[PHP] 將UTF8中文字轉成10進位或16進位數值 原本為了處理 preg_match 中文字的問題[2],用php把中文字轉換成10進位和6進位的數值編碼

Smarty安裝 smarty 是著名的樣版引擎,非常的好用,用多了突然發現拿掉smarty反而不會寫php了,以下是安裝過程..

[PHP] 好用的php常數 介紹PHP中 __DIR__, __FILE__, __FUNCTION__, __CLASS__, __METHOD__, __LINE__, __NAMESPACE__等常數

[PHP7] 讀取mysql資料庫的傳統方法 使用傳統預設的方法來連結mysql資料庫

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[bc] linux 的計算機 bc 設定小數位數、計算π、次方根 linux 的計算機 bc 設定小數位數、計算π、次方根

設計的工作絕不接受比價 拿買陽春麵的價格想買牛肉麵,寧願倒掉也不賣

外匯課程經驗 有天遇到某個朋友的正妹朋友,說她有個很棒的外匯投資課程,要我們去聽,只收場地費200大洋。她又說續效最差一個月也有1%,誰還在苦哈哈上班?

APACHE的記錄檔格式 LogFormat 語法 在APACHE中有定義一些記錄的語法模版 在 /etc/httpd/conf/httpd.conf 中: LogForm

[PHP] 檢查IP是否在某個網段內 mtachcidr 要檢查IP是否在某個網段內,要寫幾行?10行?5行? 不用,只要2行。以下是我寫的 code /** * matchCI