文章詳情頁
PHP的FTP學習(一)
瀏覽:5日期:2024-01-04 14:26:37
By Vikram Vaswani Melonfire November 07, 2000 ;;;我們是一群PHP的忠實FANS,我們因各種不同的原因使用它-WEB站點的開發,畫圖,數據庫的聯接等 -我們發現,它非常的友好,強大而且易于使用……;;你可能已經看到PHP是怎樣被用于創建GIF和JPEG圖像,從數據庫中動態的獲取信息等等,但這只是冰山的一角---最新版本的PHP擁有著強大的文件傳輸功能。 在這篇教程里,我將向你展示FTP怎樣通過HTTP和FTP聯接來傳輸文件,同時也會有一些簡單的程序代碼,跟我來吧! 首先,你應該知道PHP是通過HTTP和FTP聯接來傳輸文件的。通過HTTP上傳文件早在PHP3中就已經出現,現在,新的FTP函數已經在新的PHP版本中出現了! 開始之前,你需要確信你的PHP支持FTP,你可以通過以下代碼查知: -------------------------------------------------------------------------------- <? phpinfo(); ?> -------------------------------------------------------------------------------- 檢查輸出結果,有一“Additional Modules”區,這里列示了你的PHP支持的模塊;如果你沒發現FTP模塊,你最好重新安裝PHP,并添加FTP支持! 先讓我們來看看一個典型的FTP任務是怎樣完成的吧! -------------------------------------------------------------------------------- $ ftp ftp.server.com Connected to ftp.server.com 220 server.com FTP server ready. Name (server:john): john 331 Password required for john. Password: 230 User john logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. drwxr-xr-x;;5 john;;;users3072 Nov;;2 11:03 . drwxr-xr-x;;88 root;;;;;root;2048 Nov;;1 23:26 .. drwxr--r--;;;2 john;;;users1024 Oct;;5 13:26 bin drwx--x--x;;;8 john;;;users1024 Nov;;2 10:59 public_html drwxr--r--;;;4 john;;;users1024 Nov;;2 11:26 tmp -rw-r--r--;;;1 john;;;users;;;;;2941465 Oct;;9 17:21 data.zip 226 Transfer complete. ftp> bin 200 Type set to I. ftp> get data.zip local: data.zip remote: data.zip 200 PORT command successful. 150 Opening BINARY mode data connection for data.zip(2941465 bytes). 226 Transfer complete. ftp> bye 221 Goodbye. -------------------------------------------------------------------------------- 你可以看到,進程明顯被分為幾段:聯接(與FTP服務器建立聯接)、驗證(確定用戶是否有權力進入系統)、傳輸(這里包括列目錄,上傳或下載文件)、取消聯接。 使用PHP來FTP的步驟 建立一個PHP的FTP聯接必須遵守以下基本步驟:打開一個聯接 - 發出認證信息 - 使用PHP函數操縱目錄和傳輸文件。 以下具體實現: -------------------------------------------------------------------------------- <? // 聯接FTP服務器 $conn = ftp_connect("ftp.server.com"); // 使用username和password登錄 ftp_login($conn, "john", "doe"); // 獲取遠端系統類型 ftp_systype($conn); // 列示文件 $filelist = ftp_nlist($conn, "."); // 下載文件 ftp_get($conn, "data.zip", "data.zip", FTP_BINARY); // 關閉聯接 ftp_quit($conn); ?> -------------------------------------------------------------------------------- 讓我們一步步的來: 為了初結化一個FTP聯接,PHP提供了ftp_connect()這個函數,它使用主機名稱和端口作為參數。在上面的例子里,主機名字為“ftp.server.com”;如果端口沒指定,PHP將會使用“21”作為缺省端口來建立聯接。 聯接成功后ftp_connect()傳回一個handle句柄;這個handle將被以后使用的FTP函數使用。 -------------------------------------------------------------------------------- <? // connect to FTP server $conn = ftp_connect("ftp.server.com"); ?> -------------------------------------------------------------------------------- 一旦建立聯接,使用ftp_login()發送一個用戶名稱和用戶密碼。你可以看到,這個函數ftp_login()使用了ftp_connect()函數傳來的handle,以確定用戶名和密碼能被提交到正確的服務器。 -------------------------------------------------------------------------------- <? // log in with username and password ftp_login($conn, "john", "doe"); ?> -------------------------------------------------------------------------------- 這時,你就能夠做你想做的事情了,具體在下一部分講: 做完你想做的事后,千萬要記住使用ftp_quit()函數關閉你的FTP聯接 ;;-------------------------------------------------------------------------------- <? // close connection ftp_quit($conn); ?>
標簽:
PHP
上一條:用PHP來寫記數器(詳細介紹)下一條:PHP的FTP學習(二)
排行榜
