|
ftp_nb_get (PHP 4 >= 4.3.0, PHP 5) ftp_nb_get -- 從 FTP 伺服器上取得檔案並寫入本地檔案(non-blocking) 說明bool ftp_nb_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos] )
ftp_nb_get() 函數用來取得參數 remote_file
特殊的的遠端檔案,並儲存到由參數 local_file
特殊的本地檔案。傳輸模式參數
mode 只能為 FTP_ASCII (文字模式) 或 FTP_BINARY
(二進位模式) 兩種。與 ftp_get()
函數不同的是,此函數上傳檔案的時候採用的是異步傳輸模式,也就意味著在檔案傳輸的過程中,你的程式可以繼續干其它的事情。
返回 FTP_FAILED,FTP_FINISHED
或 FTP_MOREDATA。
例子 1. ftp_nb_get() 案例
<?php // 開始下載 $ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY); while ($ret == FTP_MOREDATA) {
// 這裡可以插入其它代碼 echo ".";
// 繼續下載... $ret = ftp_nb_continue ($my_connection); } if ($ret != FTP_FINISHED) { echo "下載中出錯..."; exit(1); } ?>
|
|
例子 2. 使用 ftp_nb_get() 函數斷線續傳
<?php // 開始 $ret = ftp_nb_get ($my_connection, "test", "README", FTP_BINARY, filesize("test")); // 或: $ret = ftp_nb_get ($my_connection, "test", "README", // FTP_BINARY, FTP_AUTORESUME); while ($ret == FTP_MOREDATA) {
// 可以插入其它代碼 echo ".";
// 繼續傳輸... $ret = ftp_nb_continue ($my_connection); } if ($ret != FTP_FINISHED) { echo "下載出錯..."; exit(1); } ?>
|
|
例子 3.
用 ftp_nb_get() 在 100 的位置斷線續傳並存為 "newfile"
// 禁止自動搜尋 ftp_set_option ($my_connection, FTP_AUTOSEEK, FALSE);
// 開始 $ret = ftp_nb_get ($my_connection, "newfile", "README", FTP_BINARY, 100); while ($ret == FTP_MOREDATA) {
...
// 繼續下載... $ret = ftp_nb_continue ($my_connection); }
|
|
在上邊的例子中,"newfile" 檔案比伺服器上的檔案
"README" 要小 100 位元組。這是因為我們是從檔案的偏移量 100
處開始讀取的,若果沒有禁止 FTP_AUTOSEEK,則
"newfile" 的前 100
位元組將會是 '\0'。
參見 ftp_nb_fget(),ftp_nb_continue(),ftp_get()
和 ftp_fget()。
| |