ftp_nb_continue (ftp_nb_continue)
با ftp_nb_continue می توانی دانلود غیرمسدودکننده FTP را ادامه بدهی. «غیرمسدودکننده (Non-blocking)» یعنی برنامه قفل نمی شود و کارهای دیگر انجام می دهد.
دانلود غیرمسدودکننده FTP چیست؟
در روش غیرمسدودکننده، درخواست دانلود می رود؛ سپس برنامه آزاد است. بعد با ftp_nb_continue() ادامه همان دانلود را پیگیری می کنی.
سینتکس تابع
ftp_nb_continue(resource $ftp_conn);
مثال: ادامه دانلود حین انجام کار دیگر
<?php
// شروع دانلود غیرمسدودکننده
$d = ftp_nb_get($ftp_conn, "local.txt", "server.txt", FTP_BINARY);
while ($d == FTP_MOREDATA) {
// اینجا کارهای دیگر انجام بده
// سپس ادامه دانلود را پیگیری کن
$d = ftp_nb_continue($ftp_conn);
}
if ($d != FTP_FINISHED) {
echo "Error downloading file.";
exit(1);
}
?>
گام های عملی سریع
- ابتدا اتصال و ورود را انجام بده.
- سپس با
ftp_nb_getدانلود را شروع کن. - بعد در حلقه،
ftp_nb_continueرا فراخوانی کن. - در پایان وضعیت را با
FTP_FINISHEDبررسی کن.
نکات و خطاهای رایج
نکته: مقدار بازگشتی می تواند FTP_MOREDATA یا FTP_FINISHED یا FTP_FAILED باشد.
هشدار: اگر همیشه FTP_MOREDATA می بینی، وقفه کوچک بگذار تا CPU نسوزد.
مقایسه با روش مسدودکننده
در روش مسدودکننده برنامه منتظر می ماند. اما اینجا آزاد است. پس تجربه کاربر بهتر می شود.
لینک ها و ادامه مطالعه
- ورود FTP با ftp_login پیش نیاز هر دانلود است.
- دانلود غیرمسدودکننده FTP را با مقایسه روش ها بهتر درک کن.
- W3Schools: ftp_nb_continue() مرجع تابع و مثال.
- W3Schools: PHP FTP Reference فهرست کامل توابع FTP.
جمع بندی سریع
- دانلود غیرمسدودکننده FTP برنامه را آزاد می گذارد.
- با
ftp_nb_getشروع کن؛ سپس ادامه بده. ftp_nb_continueوضعیت را به روز می کند.- روی
FTP_FINISHEDموفقیت را بسنج.