PHP တွင် FTP_NB_GET သည် FTP server မှဖိုင်များကိုပိတ်ဆို့ခြင်းမဟုတ်သောဖိုင်များကိုဒေါင်းလုတ်လုပ်ရန်အလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ftp_get ကို ပိတ်ဆို့ခြင်းနှင့်မတူဘဲ FTP_NB_Get သည် ပရိုဂရမ်တုန့်ပြန်မှုနှင့်ထိရောက်မှုကိုတိုးတက်စေရန် download လုပ်ငန်းစဉ်အတွင်းအခြားလုပ်ငန်းများကိုလုပ်ဆောင်ရန်ခွင့်ပြုသည်။ သို့သော်ကျွန်ုပ်တို့သည်စာဝှက်ထားတဲ့ FTP ဖိုင်တွေနဲ့ကြုံတွေ့ရတဲ့အခါ,
ဤဆောင်းပါးသည် PHP ၏ FTP_NB_GETT fatch ကို အသုံးပြု. Encrypted FTP ဖိုင်များကိုအာရုံစူးစိုက်ရန် Sealus Download ရယူရန်မည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြထားသည်။
ftp_nb_get ကိုအသုံးပြုပြီးပိတ်ဆို့ခြင်းမဟုတ်သောလုပ်ငန်းစဉ်
SSL / TLs နှင့်အတူ FTP provision security ကိုသေချာစေရန်
download လုပ်ထားသောဖိုင်ကိုစာဝှက်ဖြည်
ဒေတာနှောင့်အယှက်နှင့်အမှားကိုင်တွယ်ကာကွယ်တားဆီး
FTP_NB_GEG သည် PHP FTP extension တွင်ပိတ်ဆို့ခြင်းမဟုတ်သော download function ဖြစ်သည်။ အသုံးပြုမှုသည်အခြေခံအားဖြင့်အောက်ပါအတိုင်းဖြစ်သည် -
<?php
$conn = ftp_connect("m66.net");
ftp_login($conn, "username", "password");
$local_file = "local_encrypted_file.dat";
$remote_file = "remote_encrypted_file.dat";
$ret = ftp_nb_get($conn, $local_file, $remote_file, FTP_BINARY);
while ($ret == FTP_MOREDATA) {
// အခြားအရာတို့ကိုဤနေရာတွင်ပြုမိနိုင်ပါတယ်
$ret = ftp_nb_continue($conn);
}
if ($ret == FTP_FINISHED) {
echo "download လုပ်ပါ\n";
} else {
echo "Download မအောင်မြင်ပါ\n";
}
ftp_close($conn);
?>
အထက်ပါကုဒ်သည်အခြေခံအားဖြင့်ပိတ်ဆို့ခြင်းမဟုတ်သောလုပ်ငန်းစဉ်ကိုပြသည်။ သော့ချက်မှာစစ်တမ်းကောက်ယူရန်အတွက်စစ်တမ်းကောက်ယူရန် FTP_NB_Continue ကို ပြီးဆုံးသည်အထိဒေါင်းလုပ်လုပ်ရန်ဖြစ်သည်။
သာမန် FTP ထုတ်လွှင့်မှုသည်လွင်ပြင်စာသားကိုသာရပြီးဖိုင်များကိုကွန်ယက်ပေါ်တွင်အလွယ်တကူကြားဖြတ်နေသည်။ စာဝှက်ထားတဲ့ FTP ဖိုင်တွေကိုလုံခြုံစွာ download လုပ်တဲ့အခါပြောင်းရွှေ့သူကိုယ်တိုင်စာဝှက်ထားတဲ့ကိုသေချာအောင်လုပ်ဖို့လိုတယ်။ နှစ်စဉ်အလေ့အကျင့်နှစ်ခု:
PHP ၏ FTP extension သည် FTPS ကိုထောက်ပံ့သည်။ FTP_Connect အစား FTP_SSL_Connect ကို သုံးနိုင်သည်။
<?php
$conn = ftp_ssl_connect("m66.net"); // သွား SSL ဆက် FTP ဆာဆာ
ftp_login($conn, "username", "password");
// ကျန်အရေးယူမှုများသည်အထက်တွင်ရှိသည်
?>
ဤနည်းအားဖြင့်ဂီယာလုပ်ခြင်းကို SSL / TLS သည်လူတို့၏အလယ်အလတ်တိုက်ခိုက်မှုများကိုရှောင်ရှားရန် SSL / TLS မှစာဝှက်ထားသည်။
SFTP သည် SSH ကို အခြေခံ. ဖိုင်လွှဲပြောင်းမှုကျူးလွန်သူဖြစ်သည်။ သို့သော် Php PHP ဇာတိ FTP extension သည် SFTP ကိုမပံ့ပိုးပါ။ SSH2 extension များသို့မဟုတ်တတိယပါတီစာကြည့်တိုက်များကိုအသုံးပြုခြင်းလိုအပ်သည်။ ငါဒီမှာချဲ့တော့မှာမဟုတ်ဘူး။
ဆာဗာပေါ်ရှိဖိုင်ကိုစာဝှက်ထားပြီး (ဥပမာ AES အချိုးကျစာဝှက်ခြင်းကိုအသုံးပြုခြင်း) ကိုသင်ဒေါင်းလုပ်လုပ်ပြီးနောက် decrypt လုပ်ရန်သက်ဆိုင်ရာသော့ကိုအသုံးပြုရန်လိုအပ်သည်။ ဥပမာ openssl ကိုအသုံးပြုသည်။
<?php
$encrypted_file = "local_encrypted_file.dat";
$decrypted_file = "local_decrypted_file.dat";
$key = "your-secret-key-123"; // အချိုးကျသော့
$iv = "your-16byteivvector"; // ကန ဦး vector
$encrypted_data = file_get_contents($encrypted_file);
$decrypted_data = openssl_decrypt($encrypted_data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
if ($decrypted_data === false) {
die("စာဝှက်ဖြည်");
}
file_put_contents($decrypted_file, $decrypted_data);
echo "File Decryption ကိုအောင်မြင်စွာ\n";
?>
သတိပြုရန်:
သော့နှင့် IV သည် encryption နှင့်ကိုက်ညီရမည်
အဓိကစီမံခန့်ခွဲမှုသည်လုံခြုံမှုရှိရမည်ဖြစ်ပြီးရှင်းလင်းသောစာသားကိုမသိမ်းဆည်းနိုင်ပါ
<?php
$conn = ftp_ssl_connect("m66.net");
if (!$conn) {
die("无法ဆက်到 FTP ဆာဆာ");
}
if (!ftp_login($conn, "username", "password")) {
ftp_close($conn);
die("လော့ဂ်အင်မအောင်မြင်ပါ");
}
ftp_pasv($conn, true); // passive mode ကို enable,Firewall ပတ်ဝန်းကျင်အတွက်ပိုမိုသင့်တော်သည်
$local_encrypted = "local_encrypted_file.dat";
$remote_encrypted = "remote_encrypted_file.dat";
$ret = ftp_nb_get($conn, $local_encrypted, $remote_encrypted, FTP_BINARY);
while ($ret == FTP_MOREDATA) {
// ဤနေရာတွင်တိုးတက်မှုမျက်နှာပြင်သို့မဟုတ်အခြားယုတ္တိဗေဒကိုသင်ထည့်နိုင်သည်
$ret = ftp_nb_continue($conn);
}
if ($ret != FTP_FINISHED) {
ftp_close($conn);
die("Download မအောင်မြင်ပါ");
}
ftp_close($conn);
echo "download လုပ်ပါ,decryption စတင်ပါ...\n";
// decrypt parameters တွေကို
$key = "your-secret-key-123";
$iv = "your-16byteivvector";
$encrypted_data = file_get_contents($local_encrypted);
$decrypted_data = openssl_decrypt($encrypted_data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
if ($decrypted_data === false) {
die("စာဝှက်ဖြည်");
}
$local_decrypted = "local_decrypted_file.dat";
file_put_contents($local_decrypted, $decrypted_data);
echo "ဖိုင်ကိုအောင်မြင်စွာစာဝှက်ဖြည်ပြီးသိမ်းဆည်းထားပြီးဖြစ်သည် $local_decrypted\n";
?>
FTP_SSL_Connect ကို သုံး. လူ -In-the- အလယ်တိုက်ခိုက်မှုများကိုရှောင်ရှားရန် FTP_SSL_Connect ကို သုံးပါ
ထိရောက်မှုနှင့်သုံးစွဲသူအတွေ့အကြုံများကိုတိုးတက်စေရန်ပိတ်ဆို့ခြင်းမဟုတ်သော downloads များကိုအောင်မြင်ရန် FTP_NB_GEG ကိုသုံးပါ
download လုပ်ပြီးနောက်ဒေတာလျှို့ဝှက်ချက်များကိုသေချာစေရန်ဖိုင်များကိုစာဝှက်ဖြည်ရန် OPESSLL ကိုသုံးပါ
ယိုစိမ့်မှုကိုရှောင်ရှားရန်သော့ချက်များနှင့်ကန ဦး အမှိုက်များကိုစနစ်တကျစီမံပါ
ကွန်ယက်ပတ် 0 န်းကျင်နှင့်လိုက်လျောညီထွေကိစ္စများကိုဖြေရှင်းရန် passive mode ကိုဖွင့်ပါ ( FTP_PASV ) ကိုဖွင့်ပါ
ဤနည်းအားဖြင့်သင်သည် PHP ကို သုံး. စာဝှက်ထားသည့် FTP ဖိုင်များကိုလုံလုံခြုံခြုံနှင့်တည်ငြိမ်စွာပြုလုပ်ပါ။