လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် FTP_NB_GEGT function ကိုအသုံးပြုပြီး encrypted fTP ဖိုင်ကိုလုံခြုံစွာဒေါင်းလုတ်လုပ်ပုံ။

PHP တွင် FTP_NB_GEGT function ကိုအသုံးပြုပြီး encrypted fTP ဖိုင်ကိုလုံခြုံစွာဒေါင်းလုတ်လုပ်ပုံ။

M66 2025-06-22

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 လုပ်ထားသောဖိုင်ကိုစာဝှက်ဖြည်

  • ဒေတာနှောင့်အယှက်နှင့်အမှားကိုင်တွယ်ကာကွယ်တားဆီး


1 ။ ပိတ်ဆို့ခြင်းမဟုတ်သော downloads မှနိဒါန်း

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 ကို ပြီးဆုံးသည်အထိဒေါင်းလုပ်လုပ်ရန်ဖြစ်သည်။


2 ။ FTP Transmission Sufficial Reference အာမခံချက်

သာမန် FTP ထုတ်လွှင့်မှုသည်လွင်ပြင်စာသားကိုသာရပြီးဖိုင်များကိုကွန်ယက်ပေါ်တွင်အလွယ်တကူကြားဖြတ်နေသည်။ စာဝှက်ထားတဲ့ FTP ဖိုင်တွေကိုလုံခြုံစွာ download လုပ်တဲ့အခါပြောင်းရွှေ့သူကိုယ်တိုင်စာဝှက်ထားတဲ့ကိုသေချာအောင်လုပ်ဖို့လိုတယ်။ နှစ်စဉ်အလေ့အကျင့်နှစ်ခု:

1 ။ FTPS ကိုသုံးပါ (SSL / TLS ကျော် FTP)

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 မှစာဝှက်ထားသည်။

2 ။ SFTP ကိုသုံးပါ

SFTP သည် SSH ကို အခြေခံ. ဖိုင်လွှဲပြောင်းမှုကျူးလွန်သူဖြစ်သည်။ သို့သော် Php PHP ဇာတိ FTP extension သည် SFTP ကိုမပံ့ပိုးပါ။ SSH2 extension များသို့မဟုတ်တတိယပါတီစာကြည့်တိုက်များကိုအသုံးပြုခြင်းလိုအပ်သည်။ ငါဒီမှာချဲ့တော့မှာမဟုတ်ဘူး။


3 ။ ဒေါင်းလုပ်လုပ်ထားသောဖိုင်စာဝှက်ဖြည်ခြင်းလုပ်ငန်း

ဆာဗာပေါ်ရှိဖိုင်ကိုစာဝှက်ထားပြီး (ဥပမာ 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 နှင့်ကိုက်ညီရမည်

  • အဓိကစီမံခန့်ခွဲမှုသည်လုံခြုံမှုရှိရမည်ဖြစ်ပြီးရှင်းလင်းသောစာသားကိုမသိမ်းဆည်းနိုင်ပါ


4 ။ ဥပမာအားပြည့်စုံခြင်း

 <?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";
?>

5 ။ အကျဉ်းချုပ်နှင့်ကြိုတင်ကာကွယ်မှုများ

  • FTP_SSL_Connect ကို သုံး. လူ -In-the- အလယ်တိုက်ခိုက်မှုများကိုရှောင်ရှားရန် FTP_SSL_Connect ကို သုံးပါ

  • ထိရောက်မှုနှင့်သုံးစွဲသူအတွေ့အကြုံများကိုတိုးတက်စေရန်ပိတ်ဆို့ခြင်းမဟုတ်သော downloads များကိုအောင်မြင်ရန် FTP_NB_GEG ကိုသုံးပါ

  • download လုပ်ပြီးနောက်ဒေတာလျှို့ဝှက်ချက်များကိုသေချာစေရန်ဖိုင်များကိုစာဝှက်ဖြည်ရန် OPESSLL ကိုသုံးပါ

  • ယိုစိမ့်မှုကိုရှောင်ရှားရန်သော့ချက်များနှင့်ကန ဦး အမှိုက်များကိုစနစ်တကျစီမံပါ

  • ကွန်ယက်ပတ် 0 န်းကျင်နှင့်လိုက်လျောညီထွေကိစ္စများကိုဖြေရှင်းရန် passive mode ကိုဖွင့်ပါ ( FTP_PASV ) ကိုဖွင့်ပါ

ဤနည်းအားဖြင့်သင်သည် PHP ကို ​​သုံး. စာဝှက်ထားသည့် FTP ဖိုင်များကိုလုံလုံခြုံခြုံနှင့်တည်ငြိမ်စွာပြုလုပ်ပါ။