လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> FTP_RAWLIST နှင့် PREG_Match ပုံမှန်ခွဲခြမ်းစိတ်ဖြာမှုဖိုင်အချက်အလက်

FTP_RAWLIST နှင့် PREG_Match ပုံမှန်ခွဲခြမ်းစိတ်ဖြာမှုဖိုင်အချက်အလက်

gitbox 2025-05-26

<?php
// FTP ဆာဗာသတင်းအချက်အလက်
$ftp_server = "gitbox.net";
$ftp_user = "your_username";
$ftp_pass = "your_password";

// ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ပြီးဝင်ပါ
$conn_id = ftp_connect($ftp_server);
if (!$conn_id) {
    die("ချိတ်ဆက်. မရပါ FTP ဆာဆာ {$ftp_server}");
}

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

// ပစ်မှတ်လမ်းညွှန်သို့ပြောင်းပါ
$remote_dir = "/path/to/your/dir";
if (!ftp_chdir($conn_id, $remote_dir)) {
    ftp_close($conn_id);
    die("directory ကိုပြောင်းရန်ပျက်ကွက်: {$remote_dir}");
}

// လမ်းညွှန်စာရင်းရယူပါ,တူသော ls -l ထုတ်လုပ်ခြင်း
$raw_list = ftp_rawlist($conn_id, ".");

// တစ်ခုချင်းစီကိုလိုင်းခွဲခြမ်းစိတ်ဖြာ,示例ထုတ်လုပ်ခြင်း解析结果
foreach ($raw_list as $line) {
    /**
     * ပုံမှန်ပုံစံဥပမာများ:
     * -rw-r--r--    1 owner    group        1234 May 25 12:34 filename.txt
     * drwxr-xr-x    2 owner    group        4096 Apr 10  2023 dirname
     *
     * ပုံမှန်ဖော်ပြချက်:
     * ^([\-ld])         ဖိုင်အမျိုးအစား:-ပုံမှန်ဖိုင်များ,lသင်္ကေတ links များ,dမာတိကာ
     * ([rwx\-]{9})      ခွင့်ပြုချက်9လူသူမ
     * \s+\d+\s+         နေရာများ+ဂဏန်း(လင့်ခ်အရေအတွက်) + နေရာများ
     * (\S+)\s+          ပိုင်ဆိုင်သူ
     * (\S+)\s+          စုရုံး
     * (\d+)\s+          ဖိုင်အရွယ်အစား
     * (\w{3})\s+        တစ်လအတိုကောက်
     * (\d{1,2})\s+      နေ့စဲှ
     * ([\d:]{4,5}|\d{4})\s+ အချိန်သို့မဟုတ်တစ်နှစ်
     * (.+)$             ဖိုင်နာမည်
     */
    $pattern = '/^([\-ld])([rwx\-]{9})\s+\d+\s+(\S+)\s+(\S+)\s+(\d+)\s+(\w{3})\s+(\d{1,2})\s+([\d:]{4,5}|\d{4})\s+(.+)$/';

    if (preg_match($pattern, $line, $matches)) {
        list(, $type, $perms, $owner, $group, $size, $month, $day, $time_or_year, $filename) = $matches;

        echo "ပုံနှိပ်စာ: " . ($type === 'd' ? 'မာတိကာ' : ($type === '-' ? 'စာချုပ်စာတမ်း' : 'သံကွင်းဆက်')) . "\n";
        echo "ခွင့်ပြုချက်: $perms\n";
        echo "ပိုင်ဆိုင်သူ: $owner\n";
        echo "စုရုံး: $group\n";
        echo "အရွယ်: $size ဒရယ်\n";
        echo "ပြုပြင်မွမ်းမံအချိန်: $month $day $time_or_year\n";
        echo "ဖိုင်နာမည်: $filename\n";
        echo "---------------------\n";
    } else {
        echo "လိုင်းခွဲထုတ်နိုင်ခြင်း: $line\n";
    }
}

// ဆက်သွယ်မှုကိုပိတ်ပါ
ftp_close($conn_id);
?>