FTP_SYSTEME () function ကိုသင်ခေါ်ဆိုသောအခါမျှော်လင့်ထားသည့်ပြန်လာခြင်းသည်အောက်ပါအတိုင်းဖြစ်သည်။
$system = ftp_systype($ftp_conn);
echo $system; // ပုံမှန်အခြေအနေများတွင် output ဖြစ်သင့်သည်:UNIX သို့မဟုတ် Windows NT
ဒါပေမယ့်အမှန်တကယ် output ကိုဖြစ်လိမ့်မယ်:
UNKNOWN
FTP_SYSTEMEME () သည် System အမျိုးအစားကိုရယူရန် FTP အပေါ်မှီခိုကြောင်းနောက်ခံ system command ကိုဖြစ်သည်။ အကယ် . ဆာဗာသည်ဤ command ကိုမတုံ့ပြန်ပါက,
ရောဂါနည်းလမ်း:
ဆာဗာတုံ့ပြန်မှုများကိုကြည့်ရှုရန် command များကိုကိုယ်တိုင်ပို့ရန် FTP_RAW () ကိုသုံးနိုင်သည်။
$response = ftp_raw($ftp_conn, "SYST");
print_r($response);
အကယ် . သင်မြင်သောတုန့်ပြန်မှုသည် 215 UNIX အမျိုးအစားကိုပုံမှန်မဟုတ်လျှင် L8 ဖြစ်သည့် L8 တွင်မစတင်ပါက,
လုံခြုံရေးအကြောင်းပြချက်များအရ FTP 0 န်ဆောင်မှုပေးသူများသည် System command ကို dispire များသို့မဟုတ်၎င်းတို့၏ FTP ဆာဗာများသည်ပုံမှန်မဟုတ်သော edgers များ,
အကြံပြုချက်များကိုဖြေရှင်းရန်:
System command ကိုပိတ်ထားသည်ကိုအတည်ပြုရန် FTP 0 န်ဆောင်မှုပေးသူကိုသင်ဆက်သွယ်နိုင်သည်။ အကယ်. သင်သည်သင်၏ကိုယ်ပိုင် configure fTP service (vsftpd, proftpd စသည်) ကိုအသုံးပြုနေပါက system_en_enable file တွင် system_en_enable သို့မဟုတ်ဆက်စပ်သောရွေးချယ်စရာများကိုပိတ်ထားခြင်းရှိမရှိစစ်ဆေးနိုင်သည်။
PHP ၏အဟောင်းများသို့မဟုတ်အချို့သောဓလေ့ထုံးစံများတည်ဆောက်ခြင်းသည် FTP_SSSSTYSTES () အကောင်အထည်ဖော်မှုနှင့် ပတ်သက်. ပြ problems နာများရှိနိုင်သည်။
ရောဂါနည်းလမ်း:
PHP ဗားရှင်းကိုပုံနှိပ်ပါ။ FTP အထောက်အပံ့ကိုသေချာအောင်လုပ်ပါ။
phpinfo();
FTP အထောက်အကူပြု ပစ္စည်းကို ဖွင့်ထားပြီး PHP ဗားရှင်းအသစ်သည်ဖြစ်စေ, အနည်းဆုံး PHP 7.4 သို့မဟုတ်အထက်တွင်အသုံးပြုရန်အကြံပြုသည်ကိုအတည်ပြုပါ။
အချို့သောကွန်ယက်ပတ်ဝန်းကျင်တွင်ပွင့်လင်းမြင်သာသော proxy နှင့် firewall devices များအထူးသဖြင့် passive mode ကိုအသုံးပြုသောအခါ FTP ညွှန်ကြားချက်များကိုကြားဖြတ်နိုင်သည်။
အကြံပြုချက်များကိုဖြေရှင်းရန်:
တိုးတက်မှုရှိလားဆိုတာကြည့်ဖို့ Active / Passive Mode ကိုပြောင်းဖို့ကြိုးစားပါ။
ftp_pasv($ftp_conn, true); // passive mode ကိုသုံးပါ
သို့မဟုတ်:
ftp_pasv($ftp_conn, false); // Active Mode ကိုသုံးပါ
အကယ်. ၎င်းသည်ပြ problem နာကိုဖြေရှင်းနိုင်ပါက၎င်းသည်ကွန်ယက်ထုတ်လွှင့်မှုတွင်ပြ problem နာသည် 0 င်ရောက်စွက်ဖက်ခြင်းခံရသည်ဟုဆိုလိုသည်။
System အမျိုးအစားကိုမရရှိနိုင်လျှင်ပင်ပရိုဂရမ်ပျက်ကျမှုသို့မဟုတ်ယုတ္တိအမှားအမှားများကိုရှောင်ရှားရန်အောက်ပါနည်းဗျူဟာများကိုမွေးစားနိုင်သည်။
FTP_SYSTEMEME () သည် "မသိသော" သို့ပြန်လာသည့်အခါသင် UNIX သို့ပုံမှန်လုပ်ဆောင်မှုလမ်းကြောင်းဖြစ်သော default အမျိုးအစားတစ်ခုကိုသတ်မှတ်နိုင်သည်။
$system = ftp_systype($ftp_conn);
if ($system === false || $system === "UNKNOWN") {
$system = "UNIX"; // ပုံမှန်အပြောင်းအလဲနဲ့ဖြစ်ပါတယ် UNIX
}
လူသိများသော FTP ဆာဗာများအတွက်၎င်းတို့၏အမျိုးအစားများကိုအလိုအလျောက်ဖော်ထုတ်ခြင်းကိုမှီခိုခြင်းမရှိဘဲ configuration files များတွင်သတ်မှတ်နိုင်သည်။
$ftp_hosts = [
'ftp.gitbox.net' => 'UNIX',
'backup.gitbox.net' => 'Windows NT'
];
$host = parse_url($ftp_url, PHP_URL_HOST);
$system = $ftp_hosts[$host] ?? ftp_systype($ftp_conn);