လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> FTP_RAWLIST ၏ရလဒ်မှဖိုင်အရွယ်အစားနှင့်အချိန်ကိုထုတ်ယူနည်း

FTP_RAWLIST ၏ရလဒ်မှဖိုင်အရွယ်အစားနှင့်အချိန်ကိုထုတ်ယူနည်း

gitbox 2025-05-26

PHP PHP protocol ကို သုံး. FTP protocol မှတဆင့်ဝေးလံခေါင်သီသောဆာဗာများလည်ပတ်နေစဉ် FTP_RAWLIST () သည် UNIX system ၏ LS -l command နှင့်ဆင်တူစေနိုင်သောဘုံလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ဤကုန်ကြမ်း output များသည်ဖိုင်စာရင်းအချက်အလက်များကိုဖြည့်ဆည်းပေးသော်လည်း 4 င်းတို့၏ပုံစံသည်လွင်ပြင်စာသား string တစ်ခုဖြစ်ပြီး၎င်းသည်ဖိုင်အရွယ်အစားနှင့်ပြုပြင်မွမ်းမံသည့်အချိန်ကဲ့သို့သောတိကျသောသတင်းအချက်အလက်များကိုထုတ်ယူရန်လိုအပ်သည်။

ဤဆောင်းပါးသည် FTP_RAWLIST ၏ထုတ်လုပ်မှုကိုခွဲထုတ်ခြင်းဖြင့်ဖိုင်တစ်ခုစီ၏အရွယ်အစားနှင့်နောက်ဆုံးပြုပြင်မွမ်းမံသည့်အချိန်ကိုမည်သို့ထုတ်ယူရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

FTP_RAWLIST ၏ရလဒ်ပုံစံကိုနားလည်ပါ

FTP_RAWLIST () သည် ကြိုးကျယ်ပြန့်စွာပြန်ပို့သည်။ element တစ်ခုစီသည်အောက်ပါအတိုင်းဖိုင်သို့မဟုတ်လမ်းညွှန်တစ်ခုနှင့်ပတ်သက်သောသတင်းအချက်အလက်ကိုကိုယ်စားပြုသည်။

 -rw-r--r--   1 user group     1048576 May 21 13:37 filename.zip
drwxr-xr-x   2 user group         512 May 20 10:15 subdir

လိုင်းတစ်ခုစီသည် space ခွဲထားသော string တွင်ပါ 0 င်သည့်အာကာသခွဲခြားထားသော string တစ်ခုဖြစ်ပြီးဖိုင်အမျိုးအစား, ခွင့်ပြုချက်များ,

ပုံမှန်အသုံးအနှုန်းများကိုအသုံးပြုပြီး parse အကြောင်းအရာ

ဖိုင်အရွယ်အစားနှင့်ပြုပြင်မွမ်းမံချိန်ကိုထုတ်ယူရန်အတွက်သင်သည်ဤနယ်ပယ်များကိုပုံမှန်အသုံးအနှုန်းများဖြင့်ခွဲခြမ်းစိတ်ဖြာနိုင်သည်။

 <?php
// ဆက် FTP
$ftp = ftp_connect("gitbox.net");
ftp_login($ftp, "username", "password");

// လမ်းညွှန်စာရင်းရယူပါ
$rawList = ftp_rawlist($ftp, ".");

// ကျော်ပြီးမျဉ်းတစ်မျိုးချင်းစီခွဲပါ
foreach ($rawList as $line) {
    if (preg_match('/^([\-ld])([rwx\-]{9})\s+\d+\s+\S+\s+\S+\s+(\d+)\s+([A-Za-z]{3})\s+(\d{1,2})\s+(\d{2}:\d{2}|\d{4})\s+(.*)$/', $line, $matches)) {
        $type = $matches[1];
        $size = $matches[3];
        $month = $matches[4];
        $day = $matches[5];
        $timeOrYear = $matches[6];
        $name = $matches[7];

        // timestamp မှပြုပြင်ထားသောအချိန်ပြောင်းပါ
        $currentYear = date("Y");
        $fileTimeStr = "$month $day $timeOrYear";

        if (strpos($timeOrYear, ':') !== false) {
            // ဒါဟာနေ့၏အချိန်ကိုဆိုလိုသည်,ယခုနှစ်လက်ရှိနှစ်ဖြစ်သည်
            $fileTimeStr .= " $currentYear";
            $timestamp = strtotime($fileTimeStr);
        } else {
            // အချိန်တစ်နှစ်ဖြစ်ပါတယ်
            $timestamp = strtotime("$month $day $timeOrYear");
        }

        echo "စာချုပ်စာတမ်း: $name\n";
        echo "ပုံနှိပ်စာ: " . ($type === 'd' ? 'မာတိကာ' : 'စာချုပ်စာတမ်း') . "\n";
        echo "အရွယ်: $size ဒရယ်\n";
        echo "ပြုပြင်မွမ်းမံအချိန်: " . date("Y-m-d H:i:s", $timestamp) . "\n";
        echo "-----------------------------\n";
    }
}
ftp_close($ftp);
?>

မှတ်သားရန်အရာ

  • FTP_RAWLIST ၏ပုံစံ () ပုံစံသည်ဝေးလံခေါင်သီသောဆာဗာ၏ operating system အမျိုးအစားပေါ်တွင်မူတည်သည်။ အထက်ပါစည်းမျဉ်းများသည် Unix ပုံစံစာရင်းတွင်ပစ်မှတ်ထားသည်။ အကယ်. ဆာဗာသည် Windows FTP ကိုအသုံးပြုသည်ဆိုလျှင် output format သည်လုံးဝကွဲပြားခြားနားပြီးအမှန်တကယ်အခြေအနေအရချိန်ညှိရန်လိုအပ်သည်။

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

  • အချိန်ဇုန်တစ်လျှောက်ရှိဆာဗာများအတွက် strtotime () ပြောင်းလဲခြင်း၏ရလဒ်မှာအမှားအယွင်းများရှိနိုင်သည်။ အချိန်ကိုပိုမိုတိကျစွာလုပ်ဆောင်ရန် Datetime လူတန်းစားနှင့်အချိန်ဇုန်အရာဝတ်ထုများကိုအသုံးပြုရန်အကြံပြုသည်။

အထက်ဖော်ပြပါနည်းလမ်းဖြင့် FTP_RAWLIST ၏ရလဒ်များမှဖိုင်အရွယ်အစားနှင့်ပြုပြင်ခြင်းအချိန်ကိုအလွယ်တကူဖြည်ချပြီးဖိုင်ထပ်တူပြုခြင်း, မှတ်တမ်းခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်အခြားအခြေအနေများအတွက်အသုံးပြုသည်။