လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> FTP_RAWLIST ကို TIMEDATEDATE TASS တွင်ရယူပါ

FTP_RAWLIST ကို TIMEDATEDATE TASS တွင်ရယူပါ

gitbox 2025-05-26

မြင်ကွင်းနိဒါန်း

ကျွန်ုပ်တို့တွင်နေ့စဉ်ဖိုင်များကိုနောက်ဆုံးသတင်းများကိုမွမ်းမံသောဝေးလံခေါင်သီသော FTP server ရှိသည်ဆိုပါစို့။ ကျွန်ုပ်တို့၏ရည်မှန်းချက်မှာနံနက်တိုင်း PHP scripts များမှ PHP scripts များမှတဆင့်ဆာဗာကိုအလိုအလျောက်ချိတ်ဆက်ရန်ဖြစ်သည်။

အဆင့် 1: FTP server သို့ဆက်သွယ်ပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည် FTP server နှင့်ချိတ်ဆက်ရန်နှင့် log in လုပ်ရန်လိုအပ်သည်။

 $ftp_host = 'ftp.gitbox.net';
$ftp_user = 'username';
$ftp_pass = 'password';

$conn_id = ftp_connect($ftp_host);
if (!$conn_id) {
    die("ချိတ်ဆက်. မရပါ FTP ဆာဆာ");
}

$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);
if (!$login_result) {
    ftp_close($conn_id);
    die("FTP လော့ဂ်အင်မအောင်မြင်ပါ");
}

အဆင့် 2: Directory စာရင်းကိုရယူပါ

ပစ်မှတ်လမ်းညွှန်တွင်ဖိုင်အချက်အလက်ရယူရန် FTP_RAWLIST ကို သုံးပါ။

 $remote_dir = '/updates/';
$raw_list = ftp_rawlist($conn_id, $remote_dir);
if ($raw_list === false) {
    ftp_close($conn_id);
    die("ဖိုင်စာရင်းကိုမရပါ");
}

အဆင့် 3: ဖိုင်စာရင်းကိုခွဲခြမ်းစိတ်ဖြာခြင်း

FTP_RAWLIST သည် UNIX LS -l command ၏ output နှင့်ဆင်တူသည့်လိုင်းများကိုပြန်လည်ရောက်ရှိစေသည်။ ကျွန်ုပ်တို့သည်ဤလိုင်းများကိုခွဲခြမ်းစိတ်ဖြာရန်, ဖိုင်အမည်ကိုထုတ်ယူပြီးအချိန်ကိုပြုပြင်ရန်လိုအပ်သည်။

 $today = date('M d'); // e.g., "May 23"
$files_to_download = [];

foreach ($raw_list as $line) {
    $parts = preg_split("/\s+/", $line, 9);
    if (count($parts) < 9) continue;

    $month = $parts[5];
    $day = str_pad($parts[6], 2, '0', STR_PAD_LEFT);
    $file_time_or_year = $parts[7];
    $name = $parts[8];

    if ("$month $day" == $today) {
        $files_to_download[] = $name;
    }
}

အဆင့် 4: ဖိုင်ကိုကူးယူပါ

ထို့နောက်ထိုနေ့၌အသစ်သောဖိုင်များကို download လုပ်ပါ။

 foreach ($files_to_download as $file) {
    $local_file = __DIR__ . "/downloads/$file";
    $remote_file = $remote_dir . $file;
    if (ftp_get($conn_id, $local_file, $remote_file, FTP_BINARY)) {
        echo "ဖိုင်ကိုအောင်မြင်စွာကူးယူပါ:$file\n";
    } else {
        echo "Download မအောင်မြင်ပါ:$file\n";
    }
}

အဆင့် 5. ဆက်သွယ်မှုကိုပိတ်ပါ

လုပ်ငန်းပြီးဆုံးပြီးနောက် FTP ဆက်သွယ်မှုကိုပိတ်ပါ။

 ftp_close($conn_id);

အကျဉ်းချုပ်

အထက်ပါအဆင့်များမှတစ်ဆင့် FTP server နှင့်အလိုအလျောက်ချိတ်ဆက်ပြီးနေ့စဉ်မွမ်းမံထားသောဖိုင်များကိုအလိုအလျောက်ဆက်သွယ်နိုင်သည့် PHP-based time task scard ကိုကျွန်ုပ်တို့အကောင်အထည်ဖော်နိုင်သည်။ ဤ script သည်နေ့စဉ် 0 င်ရောက်စွက်ဖက်ခြင်းမရှိဘဲ Linux ၏ Cron Time Task System ဖြင့်နေ့စဉ်ပုံမှန်လည်ပတ်နိုင်သည်။ ဤနည်းလမ်းသည်ဖိုင်များကိုပုံမှန်လည်ပတ်ရန်လိုအပ်သည်, အထူးသဖြင့်မှတ်တမ်းဖိုင်များ, ဒေတာထပ်တူပြုခြင်း,