ftp_nb_get (ftp_nb_get)
با ftp_nb_get می توانی فایل را غیرمسدودکننده دانلود کنی. «غیرمسدودکننده (Non-blocking)» یعنی برنامه قفل نمی شود. همچنین «حالت انتقال (Transfer mode)» می تواند باینری یا متنی باشد.
ftp_nb_get چه کاری می کند؟
این تابع فایل سرور را می گیرد و در فایل محلی می نویسد. چون غیرمسدودکننده است، می توانی همزمان کار دیگری انجام دهی.
سینتکس
ftp_nb_get(ftp_conn, local_file, server_file, mode, startpos);
مثال: دانلود غیرمسدودکننده به فایل محلی
<?php
// اتصال و ورود به سرور FTP
$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);
$local_file = "local.zip";
$server_file = "server.zip";
// شروع دانلود غیرمسدودکننده
$d = ftp_nb_get($ftp_conn, $local_file, $server_file, FTP_ASCII);
while ($d == FTP_MOREDATA) {
// اینجا کارهای دیگر انجام بده
// ادامه دانلود را پیگیری کن
$d = ftp_nb_continue($ftp_conn);
}
if ($d != FTP_FINISHED) {
echo "Error downloading $server_file";
exit(1);
}
// بستن اتصال
ftp_close($ftp_conn);
?>
گام های عملی سریع
- اتصال و ورود را انجام بده.
- مسیر محلی و سرور را تعیین کن.
ftp_nb_getرا فراخوانی کن.- با
ftp_nb_continueپیشرفت را پیگیری کن. - در پایان، نتیجه را بررسی و اتصال را ببند.
نکات و هشدارها
نکته: مقدار بازگشتی یکی از FTP_FAILED، FTP_FINISHED یا FTP_MOREDATA است.
نکته: برای فایل های دودویی از FTP_BINARY استفاده کن. خطا کمتر می شود.
هشدار: اگر فایل محلی وجود داشته باشد، بازنویسی می شود. مسیر را دقیق بده.
صفحات مرتبط
برای ادامه دانلود از ftp_nb_continue کمک بگیر. اگر نسخه مسدودکننده می خواهی، ftp_get را ببین. همین طور موضوع ftp_nb_fget نیز مرتبط است.
لینک های منبع
- W3Schools: ftp_nb_get() مرجع تابع و مثال.
- W3Schools: PHP FTP Reference فهرست توابع FTP.
جمع بندی سریع
- دانلود غیرمسدودکننده، UI را روان نگه می دارد.
- پیشرفت با
ftp_nb_continueبررسی می شود. - برای باینری،
FTP_BINARYبهتر است. - فایل محلی ممکن است بازنویسی شود.