PHP ၏ပိတ်ဆို့ခြင်းမဟုတ်သော FTP စစ်ဆင်ရေး FTP ကိုပိတ်ဆို့ခြင်း ftp_nb_continue () တွင် developer များစွာသည်ခက်ခဲသောပြ problem နာတစ်ခုနှင့်ကြုံတွေ့ရလိမ့်မည်။ အဘယ်ကြောင့်ဆိုသော် FTP session သည်မမျှော်လင့်သောစောင့်ဆိုင်းနေသည့်အခြေအနေတွင်ဖြစ်သည်။ ဤဆောင်းပါးသည် FTP_NB_Continue ၏အကြောင်းရင်းများကိုအသေးစိတ်ဖော်ပြရန်နှင့်ပိတ်ဆို့ခြင်းနှင့်အချိန်ကုန်ပြ issues နာများကိုရှောင်ရှားရန်ထိရောက်သောဖြေရှင်းနည်းများကိုဖြည့်ဆည်းပေးနိုင်သည်။
ftp_nb_continue () ကို ပိတ်ဆို့ခြင်းမဟုတ်သော ftp_nb_get () နှင့် ftp_nb_put ()) နှင့် ftp_nb_put () ) နှင့်အသုံးပြုသည်။ ၎င်း၏ function ကိုမပြီးဆုံးသေးသော FTP စစ်ဆင်ရေးကိုဆက်လက်လုပ်ဆောင်ရန်ဖြစ်သည်။ ပိတ်ဆို့ခြင်းမဟုတ်သောကူးစက်မှု၏အားသာချက်မှာပြီးစီးရန်ဂီယာကိုစောင့်ဆိုင်းရန်စောင့်ဆိုင်းနေစဉ်အခြားယုတ္တိဗေဒကိုဆက်လက်လုပ်ဆောင်နိုင်သည့်အခြားယုတ္တိဗေဒကိုဆက်လက်လုပ်ဆောင်နိုင်သည်။
ပုံမှန်အားဖြင့်ပိတ်ဆို့ခြင်းမဟုတ်သော download လုပ်ခြင်းလုပ်ငန်းစဉ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<Code> $ ftp = ftp_connect (gitbox.net '); FTP_LOGIN ($ FTP, 'Username', 'Password'); $ Ret = FTP_NB_GET (ဒေါ်လာ FTP, Local_file.txt ',' Remote_file.txt ', ftp_binary), နေစဉ် ($ Ret == ftp_moredata) {
// အခြားတာဝန်များကိုလုပ်ဆောင်နိုင်ပါတယ်
do_something_else ();
// လွှဲပြောင်းရန်ဆက်လက်
$ret = ftp_nb_continue($ftp);
}
</ code>
အရမ်းရိုးရှင်းပါတယ် သို့သော်၎င်းကိုအမှန်တကယ်အသုံးပြုသည့်အခါလူများစွာသည်ဤသံသရာဖြင့် "စွဲကပ်" နေကြသည်။
အချို့သော FTP ဆာဗာများသည်အချို့သောပြည်နယ်များတွင်နှောင့်နှေးနေကြောင်း, ၎င်းသည် FTP_NB_Continue () ကို FTP_MOREDATA ပြည်နယ်တွင်ဆက်လက်တည်ရှိရန်နှင့်ဘယ်တော့မှမကုန်ဆုံးပါ။
ဖြေရှင်းချက် -
ကျိုးကြောင်းဆီလျော်သောအချိန်ကုန်ကိုသတ်မှတ်ပါ -
<code> ftp_set_option ($ ftp, ftp_ToOut_sec, 30); </ code>Stream_set_set_Timeout () ကိုသုံးရန် (ftp ၏နောက်ခံစီးဆင်းမှုကိုရယူရန်လိုအပ်သည်) ကိုသုံးပါ။
Developer အတော်များများသည်ပိတ်ဆို့ခြင်းမဟုတ်သောကွင်းဆက်များကို 0 င်ရောက်သောအခါ CPU ကိုပျံသန်းခြင်းကိုဖြစ်ပေါ်စေသည့်အခါ ကွင်းဆက် သို့နှောင့်နှေးရန်မေ့နေပြီး CPU ကိုပျံသန်းခြင်းကိုဖြစ်ပေါ်စေပြီး FTP server သည်တောင်းဆိုမှုများကိုတုံ့ပြန်ရန်အချိန်မရှိပါ။
ဖြေရှင်းချက် -
<code> နေစဉ် ($ Ret == ftp_moredata) {do_somethethethethethething_else (); USEEEP (100000), // နှောင့်နှေး 100ms $ ret = ftp_nb_continue ($ FTP); } </ code>ထုတ်လွှင့်ခြင်းပြီးဆုံးပြီးနောက် FTP ဆာဗာများသည် status code ကိုမှန်ကန်စွာမပြန်ကြပါ ။
ဖြေရှင်းချက် -
local file size သည်မျှော်လင့်ချက်များနှင့်ကိုက်ညီမှုရှိမရှိစစ်ဆေးပါ။
ပြန်လည်ထူထောင်ချိန်အများဆုံးအရေအတွက်ကိုသတ်မှတ်ပါ။
<code> $ maxtries = 100; $ tries = 0; နေစဉ် ($ Ret == ftp_moredata && $ maxtries <$ maxtries)
USEEEP (100000),
$ ret = ftp_nb_continue ($ FTP);
$ tries ++;
}
လျှင် ($ tries == $ maxtries) {
ချွင်းချက်အသစ် ('FTP ထုတ်လွှင့်ချိန်အချိန်) ကိုပစ်ပါ။
}
</ code>
ကွဲပြားခြားနားသောဆာဗာများသည်တက်ကြွသော (port) နှင့် passive (pasv) mode များကိုမထောက်ပံ့ပါ။ မမှန်ကန်သောချိန်ညှိချက်များသည် connection တည်ဆောက်ခြင်းဖြစ်သော်လည်းအချက်အလက်များကိုမှန်ကန်စွာလွှဲပြောင်း။ မရပါ။
ဖြေရှင်းချက် -
<Code> FTP_PASV ($ FTP, true), // passive mode ကို enable </ code>Active / Passive Mode အကြားပြောင်းရန်ကြိုးစားပါ။ သင်၏ FTP ဝန်ဆောင်မှုနှင့်မည်သည့်အရာနှင့် ပို. လိုက်ဖက်သနည်း။
ပိတ်ဆို့ခြင်းမဟုတ်သော mode ကိုအသုံးပြုသောအခါထွက်ပေါက်ယန္တရားကိုဒီဇိုင်းဆွဲရန်သေချာပါစေ။
ကျိုးကြောင်းဆီလျော်သောနှောင့်နှေးမှုများကိုသံသရာတွင်ထည့်သွင်းထားကြောင်းသေချာစေရန်,
အချိန်ကုန်ခြင်းနှင့်အများဆုံးကြိုးစားမှုအရေအတွက်ကိုသတ်မှတ်ပါ။
အကယ်. သင်သည်ကြာရှည်စွာကြုံတွေ့ရပါက FTP mode ကိုပြောင်းရန်ကြိုးစားပါ။
အရင်းအမြစ်များကိုဖြန့်ချိရန်မမေ့ပါနှင့်
<code> ftp_close ($ ftp); </ code>FTP_NB_Continue () သည် FTP လုပ်ငန်း၏ပြောင်းလွယ်ပြင်လွယ်မှုများကိုမှန်ကန်စွာတိုးတက်စေနိုင်သည်, သို့သော်မှီဝဲရန်လည်းလွယ်ကူသည်။ အထက်ပါကျွမ်းကျင်မှုများကိုကျွမ်းကျင်စေခြင်းအားဖြင့်သင်သည်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ပိတ်ဆို့ခြင်း, ပိတ်ဆို့ခြင်းနှင့်အလွန်အကျွံသုံးစွဲခြင်းနှင့်အလွန်အမင်း CPU အသုံးပြုမှုကိုရှောင်ရှားနိုင်သည်။ သင်၏ PHP FTP ပရိုဂရမ်ကိုပိုမိုတည်ငြိမ်ပြီးထိရောက်စေသည်။ အကယ်. သင်သည်အလားတူအခြေအနေများနှင့်ကြုံတွေ့ရပါက၎င်းတို့အားတစ် ဦး အားဖြင့်တစ် ဦး ကိုစစ်ဆေးပြီး root အကြောင်းအရင်းကိုရှာပြီးမှန်ကန်သောဆေးကိုသတ်မှတ်နိုင်သည်။