مثال
دانلود یک فایل از سرور FTP و ذخیره ی آن در یک فایل باز شده ی محلی(به صورت رویدادگرا یا non-blocking):
<?php
// connect and login to FTP server
$ftp_server = "ftp.example.com";
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
$server_file = "somefile.txt";
// open local file to write to
$local_file = "local.txt";
$fp = fopen($local_file,"w");
// initiate download
$d = ftp_nb_fget($ftp_conn, $fp, $server_file, FTP_BINARY)
while ($d == FTP_MOREDATA)
{
// do whatever you want
// continue downloading
$d = ftp_nb_continue($ftp_conn);
}
if ($d != FTP_FINISHED)
{
echo "Error downloading $server_file";
exit(1);
}
// close connection and file handler
ftp_close($ftp_conn);
fclose($fp);
?>تعریف و کاربرد
تابع ()ftp_nb_fget یک فایل را از سرور FTP دریافت(دانلود) می کند و آن را در یک فایل باز شده ی محلی( به صورت رویداد گرا یا non-blocking) ذخیره می کند.
نکته: این تابع برخلاف تابع ()ftp_fget فایل مورد نظر را به صورت ناهمگام(asynchronously) دریافت می کند، بنابراین شما می توانید هنگامی که فایل در حال دانلود شدن است، دیگر عملیات را انجام دهید.
نحوه نوشتن
| پارامترها | توضیحات |
|---|---|
| ftp_connection | ضروری. کانکشن ftp را برای استفاده، مشخص می کند. |
| open_file | ضروری. فایل محلی باز شده ای را که قرار است داده ها را در آن ذخیره کنیم، مشخص می کند. |
| server_file | ضروری. فایلی در سرور که قرار است دانلود شود را مشخص می کند. |
| mode | ضروری. حالت انتقال را مشخص می کند. مقادیر امکان پذیر عبارتند از: FTP_ASCII یا FTP_BINARY. |
| startpos | اختیاری. موقعیتی در فایل را مشخص می کند تا دانلود را از آن شروع کند. |
جزئیات تکنیکی
| مقدار برگشتی: | این تابع یکی از مقادیر زیر را برمی گرداند: FTP_FAILED (send/receive failed)
|
|---|---|
| ورژن php: | 4.3+ |



PHP FTP Reference
