လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> IS_DIR function ကိုအသုံးပြုပြီးဖိုင်လမ်းကြောင်းအတည်ပြုမှုအတွက်အကောင်းဆုံးအလေ့အကျင့်များ

IS_DIR function ကိုအသုံးပြုပြီးဖိုင်လမ်းကြောင်းအတည်ပြုမှုအတွက်အကောင်းဆုံးအလေ့အကျင့်များ

gitbox 2025-05-26

1 ။ အခြေခံအသုံးပြုမှုနိဒါန်း

IS_DIR () သည် PHP ရှိ Built-in function များထဲမှတစ်ခုဖြစ်သည်။

<Code> $ path = '/ var / www / html / uploads'; IF (is_dir ($ path)) {echo ") {echo") {echo "သည်မှန်ကန်သော directory"; } အခြား echo "ဤလမ်းကြောင်းသည်လမ်းညွှန်မဟုတ်ပါ, မတည်ရှိပါ"; } </ code>

ဤလုပ်ဆောင်ချက်သည် server ပေါ်ရှိတကယ့်ဖိုင်စနစ်အခြေအနေပေါ်မူတည်ပြီး boolean value ကို မှန်ကန် သည်


2 ။ အကောင်းဆုံးအလေ့အကျင့်

2.1 ဆွေမျိုးလမ်းကြောင်းအစားအကြွင်းမဲ့လမ်းကြောင်းကိုသုံးပါ

IS_DIR () ဟုခေါ်သည့်အခါ အကြွင်းမဲ့လမ်းကြောင်းများကို အသုံးပြုရန်ကြိုးစားပါ။ လက်ရှိအလုပ်လုပ်နေသော directory (CWD) တွင်အပြောင်းအလဲများကြောင့်ဆွေမျိုးလမ်းကြောင်းသည်ကျရှုံးနိုင်သည်။ ဥပမာအားဖြင့်:

<Code> $ Relswath = 'Images', $ assometePath = __Dir__ ။ '/ ရုပ်ပုံများ',

if (is_dir ($ asselocepath)) {
// အကြံပြုနည်းလမ်း
}
</ code>

2.2 တည်ငြိမ်မှုကိုတိုးတက်စေရန် realappath () ကိုသုံးပါ

Realtpath () လမ်းကြောင်းကိုပုံမှန်ဖြစ်စေနိုင်သည်။ ဥပမာအားဖြင့်ဆွေမျိုးလမ်းကြောင်းအစိတ်အပိုင်းများကိုဖယ်ရှားနိုင်သည် is_dir () နှင့်ပေါင်းစပ်။ Path Verification ကိုပိုမိုထိရောက်စွာလုပ်ဆောင်နိုင်သည်။

<Code> $ Path = Realpath ('/ var / www / html / uploads'), အကယ်. ($ Path! == false && is_dir ($ path)) {// လမ်းကြောင်းတည်ရှိပြီးလမ်းညွှန်သည် </ code> လမ်းညွှန်တစ်ခုဖြစ်ကြောင်းသေချာပါစေ။

2.3 လမ်းညွှန်ဖြတ်သန်းတိုက်ခိုက်မှုများကိုတားဆီးပါ

အသုံးပြုသူ input မှလမ်းကြောင်းများရယူသည့်အခါ, directory traversal တိုက်ခိုက်မှုများကိုရှောင်ရှားရန် ကဲ့သို့သောအန္တရာယ်ရှိသောဇာတ်ကောင်များကိုသေချာစွာစစ်ဆေးပါ။ ၎င်းကိုပုံမှန်အသုံးအနှုန်းများသို့မဟုတ်အဖြူရောင်ယန္တရားများနှင့်ပေါင်းစပ်နိုင်သည်။

<Code> $ input = $ _GET [dir '] ?? ''; အကယ်. (Preg_match ('/ ^ [a-za-z0-9 _ \ - \ - \ - \ /] + $ /', $ input)) {$ Path = realpath ('/ www / html /') ။ အကယ်. ($ Path! == false && is_dir ($ path)} {// လုံခြုံစိတ်ချရသော}} </ code>

2.4 လုံခြုံရေးကိုတိုးတက်စေရန် File_exists () ကိုသုံးပါ

is_dir () သည် မတည်ရှိသည့်လမ်းကြောင်းအတွက်မှားယွင်းသောလမ်းများအတွက်မှားယွင်းသော်လည်းသင်ပိုမိုတိကျခိုင်မာစွာစစ်ဆေးခြင်းယုတ္တိဗေဒလိုအပ်ပါကသင်ပထမ ဦး ဆုံးလက်တွေ့ကျင့်သုံးရန် file_exists () ကို ပထမ ဦး စွာသုံးနိုင်သည်။

<Code> $ path = '/ var / www / html / uploads'; IF (File_exists ($ Path) && is_dir ($ Path) {// is_dir ($ path)) {// is_dir)} </ code>

2.5 သင်္ကေတလိုင်းများကြောင့်ဖြစ်ပေါ်လာသောရှုပ်ထွေးမှုများကိုရှောင်ပါ

သင်္ကေတအချိတ်အဆက်များကမျှော်လင့်ထားသည့်အတိုင်းကွဲပြားခြားနားစွာပြုမူ ရန် () ကို ဖြစ်ပေါ်စေနိုင်သည်။ ဥပမာအားဖြင့်, link တစ်ခုသည်မတည်ရှိသောလမ်းညွှန်ကိုညွှန်ပြပါက is_dir () သည် မှားယွင်းသောပြန်လာလိမ့်မည်။ သင်နှင့် တွဲဖက်. is_link () ကို သုံးနိုင်သည်။

<Code> $ path = '/ var / www / html / uploads'; IF (is_link ($ path)) {echo "ဤသည် {echo" "" ဤသင်္ကေတ link "; } အခြား {is_dir ($ Path)) {echo ") {echo" {echo ") {isho" ", } </ code>

3 ။ မှတ်စုဖို့အရာ

  • ခွင့်ပြုချက်ပြ issue နာ - directory တည်ရှိရာတည်ရှိရင်တောင် IS_DIR () သည် PHP ခွင့်ပြုချက်မဖတ်ပါကမှားယွင်းစွာပြန်ပို့နိုင်သည်။

  • စွမ်းဆောင်ရည်ဆိုင်ရာပြ issues နာများ - လမ်းကြောင်းများစွာကိုစစ်ဆေးရန်မကြာခဏခေါ်ဆိုမှုများမကြာခဏခေါ်ဆိုမှုများသည်ကျွန်ုပ် / o ဖိအားပေးမှုကိုဖြစ်ပေါ်စေနိုင်သည်။

  • Multi-platform compatibility : Path Supports သည် Windows နှင့် Linux တွင်ကွဲပြားခြားနားပြီး directory_searator သို့မဟုတ်တစ်ပုံစံတည်းအသုံးပြုရန်အကြံပြုသည်


4 ။ လက်တွေ့ကျတဲ့ဥပမာ - Upload လမ်းညွှန်ထဲရှိဖိုင်တွဲများကိုလုံခြုံစွာစာရင်းပြုစုပါ

<Code> function listuploaddddiadddiaddiaddiaddiaddiaddiaddiaddiaddiaddies: array {$ dir = [];
 $realBase = realpath($baseDir);
if ($realBase === false || !is_dir($realBase)) {
    return $dirs;
}

$entries = scandir($realBase);
foreach ($entries as $entry) {
    if ($entry === '.' || $entry === '..') {
        continue;
    }

    $fullPath = $realBase . DIRECTORY_SEPARATOR . $entry;
    if (is_dir($fullPath)) {
        $dirs[] = $entry;
    }
}

return $dirs;

}

$ Uploaddirs = listuploaddiS ('/ www / gitw ည့်သည် / gitpsox.net / uploads');
Print_R ($ uploaddddiS);
</ code>

ဤကုဒ်သည်သတ်မှတ်ထားသော directory ထဲတွင် subdirectorirectorector များအားလုံးကိုလုံခြုံစွာစာရင်းပြုစုထားပြီးအကောင့်လမ်းကြောင်းသို့စာလမ်းကြောင်းပုံမှန်နှင့်အခြေခံလုံခြုံရေးပြုပြင်ပြောင်းလဲမှုများပြုလုပ်သည်။