လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ဆန့်ကျင်ဘက်ဖိုင်များကိုမစာရင်းမသွင်းနိုင်လျှင်ကျွန်ုပ်ဘာလုပ်သင့်သနည်း။ မကြာခဏမေးသောမေးခွန်းများနှင့်ဖြေရှင်းနည်းများကိုဖြေရှင်းနည်း

ဆန့်ကျင်ဘက်ဖိုင်များကိုမစာရင်းမသွင်းနိုင်လျှင်ကျွန်ုပ်ဘာလုပ်သင့်သနည်း။ မကြာခဏမေးသောမေးခွန်းများနှင့်ဖြေရှင်းနည်းများကိုဖြေရှင်းနည်း

gitbox 2025-06-11

PHP တွင် စတူးတူးရေး function ကိုသတ်မှတ်ထားသော directory တွင်ဖိုင်များနှင့်ဖိုင်တွဲများစာရင်းကိုဖတ်ရန်အသုံးပြုသည်။ သို့သော်တစ်ခါတစ်ရံကျွန်ုပ်တို့သည်ပြ a နာတစ်ခုနှင့်ကြုံတွေ့ရသည်။ scandir သည် လျှို့ဝှက်ဖိုင်များ (အစက်များဖြင့်စတင်သည် ) ။ ဤဆောင်းပါးသည်အကြောင်းရင်းများကိုအသေးစိတ်လေ့လာပြီးဤပြ problem နာအတွက်လက်တွေ့ကျသောစုံစမ်းစစ်ဆေးမှုနှင့်ဆုံးဖြတ်ချက်များကိုမျှဝေပါမည်။


1 ။ စကင်ဖတ်ရန်အဘယ်ကြောင့်လျှို့ဝှက်ဖိုင်များကိုမပြသနည်း။

ပုံမှန်အားဖြင့် scandir function သည် directory ရှိဖိုင်များနှင့်ဖိုင်တွဲများကိုလျှို့ဝှက်ဖိုင်များအပါအ 0 င် directory ရှိဖိုင်များနှင့်ဖိုင်တွဲများကိုပြန်ပို့သည်။ သို့သော်လျှို့ဝှက်ဖိုင်များစာရင်းမ 0 င်ကြောင်းသင်တွေ့ရှိပါကဖြစ်နိုင်သောအကြောင်းပြချက်များမှာအောက်ပါအတိုင်းဖြစ်သည် -

  1. filtered လျှို့ဝှက်ဖိုင်များ <br> ဖိုင်များအတွက် code အတွက် code အတွက်အခြေအနေများ filtering အခြေအနေများရှိပါတယ် ဝှက်ထားသောဖိုင်များကိုဖယ်ထုတ်ပစ်စေသည့်အရာဖြစ်သည်။

  2. ဖိုင်ခွင့်ပြုချက်ပြ issues နာများ
    PHP Runtime သည်လျှို့ဝှက်ဖိုင်များကိုဖတ်ရန်ခွင့်ပြုချက်မရှိပါ။

  3. operating system သို့မဟုတ် file system ခြားနားချက် <br> အချို့သောစနစ်များသည်လျှို့ဝှက်ဖိုင်များကိုကွဲပြားစွာကိုင်တွယ်နိုင်သည်, တိကျသောပတ် 0 န်းကျင်တွင်ဖော်ပြထားသောခြွင်းချက်များကိုပြသနိုင်သည်။

  4. ထိုကဲ့သို့သော cache သို့မဟုတ်သင်္ကေတ links အဖြစ်အထူးအခြေအနေများ <br> <br> တစ်ခါတစ်ရံဖိုင်စနစ် Cache သို့မဟုတ်သင်္ကေတ link တစ်ခု၏တည်ရှိမှုသည်ဖိုင်စာရင်းကိုသက်ရောက်နိုင်သည်။


2 ။ PHP နှင့်လျှို့ဝှက်ဖိုင်များကိုမည်သို့မှန်ကန်စွာစာရင်းပြုစုရမည်နည်း။

အဆိုပါ စန္ဒနဒိန် function တွင်လျှို့ဝှက်ဖိုင်များပါရှိသည်, သို့သော်ရလဒ်မှာရလဒ်မှာအထူးလမ်းညွှန်နှစ်ခုပါဝင်သည် နှင့် .. ဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -

 <?php
$files = scandir('/path/to/directory');
foreach ($files as $file) {
    echo $file . PHP_EOL;
}
?>

ဤကုဒ်သည်လျှို့ဝှက်ဖိုင်များအပါအ 0 င်ဖိုင်များအားလုံးကိုစာရင်းပြုစုထားသည်။ ဒါပေမယ့်သင် filter လုပ်ချင်ရင် ... ... , မင်းဒါကိုရေးနိုင်တယ်။

 <?php
$files = scandir('/path/to/directory');
foreach ($files as $file) {
    if ($file === '.' || $file === '..') continue;
    echo $file . PHP_EOL;
}
?>

အကယ်. သင်သည်လျှို့ဝှက်ဖိုင်များကိုအထူးသဖြင့်စစ်ထုတ်လိုပါကသင်အသုံးပြုနိုင်သည်။

 <?php
$files = scandir('/path/to/directory');
foreach ($files as $file) {
    if ($file === '.' || $file === '..') continue;
    if ($file[0] === '.') {
        echo "ဖိုင်များကိုဖျောက်ထားပါ: " . $file . PHP_EOL;
    } else {
        echo "ပုံမှန်ဖိုင်များ: " . $file . PHP_EOL;
    }
}
?>

3 ။ မကြာခဏမေးလေ့ရှိသောမေးခွန်းများပြ esh နာဖြေရှင်းခြင်း

1 ။ လမ်းညွှန်လမ်းကြောင်းမှန်ဟုတ်မဟုတ်စစ်ဆေးပါ

စနဗတီး သို့သွားသောလမ်းကြောင်းသည်မှန်ကန်ပြီးလက်လှမ်းမီကြောင်းသေချာပါစေ။ အတည်ပြုရန် is_dir ကို သုံးနိုင်သည်။

 <?php
$dir = '/path/to/directory';
if (!is_dir($dir)) {
    die("အဆိုပါ directory မတည်ရှိပါဘူးသို့မဟုတ်လက်လှမ်းမမှီပါဘူး");
}
$files = scandir($dir);
?>

2 ။ PHP process ခွင့်ပြုချက်ကိုအတည်ပြုပါ

PHP ကိုအသုံးပြုနေသောအသုံးပြုသူသည် (ဤကဲ့သို့သော www-data or apache ) သည် directory နှင့် files များကိုဖတ်ရန်ခွင့်ပြုချက်ရှိမရှိ။

စစ်ဆေးရန် is_readable () function ကိုသုံးနိုင်သည်။

 <?php
if (!is_readable($dir)) {
    die("ဒီလမ်းညွှန်ကိုဖတ်ရန်ခွင့်ပြုချက်မရှိပါ");
}
?>

3 ။ Program ထဲရှိလျှို့ဝှက်ဖိုင်များကိုစစ်ထုတ်ခြင်းကိုရှောင်ပါ

code တွင်ယုတ္တိဗေဒရှိနေသေးသည့်လျှို့ဝှက်ဖိုင်များနှင့်တူသည်ကိုစစ်ဆေးပါ။ အချို့သောစီမံကိန်းများကိုလျှို့ဝှက်ဖိုင်များကိုပြသခြင်းကိုရှောင်ရှားရန်အတိအလင်း filtered ပြုလုပ်နိုင်သည်။


4 ။ ဖြည့်စွက်အကြံပေးချက်များ: လျှို့ဝှက်ဖိုင်များကိုဖတ်ရန် ဖိုင်စနစ်ကို အသုံးပြုပါ

စနဗွတ် အပြင် PHP သည် File filtering နှင့်ခွင့်ပြုချက်ပြ issues နာများကိုပိုမိုအဆင်ပြေစွာကိုင်တွယ်နိုင်သည့်ပိုမိုလွယ်ကူစွာကြားဖြတ် iterator နည်းလမ်းကိုလည်းထောက်ပံ့ပေးသည်။

ဥပမာ -

 <?php
$dir = '/path/to/directory';
$iterator = new FilesystemIterator($dir);

foreach ($iterator as $fileinfo) {
    $filename = $fileinfo->getFilename();
    if ($filename[0] === '.') {
        echo "ဖိုင်များကိုဖျောက်ထားပါ: $filename" . PHP_EOL;
    } else {
        echo "ပုံမှန်ဖိုင်များ: $filename" . PHP_EOL;
    }
}
?>

5 ။ အကျဉ်းချုပ်

  • scandir တွင်လျှို့ဝှက်ဖိုင်များတွင်ပုံမှန်အားဖြင့်ပါ 0 င သည်

  • လမ်းကြောင်းသည်မှန်ကန်ကြောင်းစစ်ဆေးပြီး PHP သည်ဖိုင်ကိုဖတ်ရန်ခွင့်ပြုချက်ရှိသည်။

  • ကုဒ်ယုတ္တိဗေဒကိုမှားယွင်းစွာဖယ်ထုတ်ထားခြင်းရှိမရှိစစ်ဆေးပါ။

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

ဒီနည်းလမ်းတွေက scandir ဖိုင်တွေကိုမစာရင်းမသွင်းနိုင်တဲ့ပြ problem နာကိုဖြေရှင်းနိုင်လိမ့်မယ်လို့မျှော်လင့်ပါတယ်။


 <?php
$directory = '/var/www/html';
if (!is_dir($directory) || !is_readable($directory)) {
    die("လမ်းညွှန်သည်မတည်ရှိပါသို့မဟုတ်မဖတ်ပါ");
}

$files = scandir($directory);
foreach ($files as $file) {
    if ($file === '.' || $file === '..') continue;
    echo $file . PHP_EOL;
}
?>