လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> get_include_path () is_readable () ဖိုင်ကိုဖတ်လို့မရဘူးဆိုတာစစ်ဆေးပါ

get_include_path () is_readable () ဖိုင်ကိုဖတ်လို့မရဘူးဆိုတာစစ်ဆေးပါ

gitbox 2025-05-26

PHP တွင် Get_includude_Path () နှင့် is_readable () နှင့် is_readable () သည် File ပါ 0 င်ခွင့်နှင့်ခွင့်ပြုချက်တရားစီရင်ပိုင်ခွင့်များကိုကိုင်တွယ်ရာတွင်အထူးအရေးကြီးသည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခုကို အသုံးပြု. ဖိုင်တစ်ခုစီသည် ထည့်သွင်းထားသော လမ်းကြောင်းဖြင့်သတ်မှတ်ထားသောလမ်းကြောင်းတွင်ဖော်ပြထားသောလမ်းတွင်တည်ရှိမှုရှိမရှိဆုံးဖြတ်ရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါမည်။

1 ။ get_include_path () ?

Get_include_path () သည် built-in function တစ်ခုဖြစ်သော built-in function တစ်ခုဖြစ်ပြီးလက်ရှိလမ်းကြောင်း (0 ါဖင့်ပါ) ပါ 0 င်သည်။ ပါ 0 င်သည့်လမ်းကြောင်းသည် PHP မှအသုံးပြုသော directory များ ( ဥပမာ , ဒီ function ကိုကိုယ်တိုင်လုပ်မရှိမရှိကိုကိုယ်တိုင်စစ်ဆေးရန်လမ်းကြောင်းရရှိရန်အသုံးပြုနိုင်သည်။

 $includePath = get_include_path();
echo $includePath;

၎င်း၏ပြန်လာတန်ဖိုးသည်များသောအားဖြင့်လမ်းကြောင်းများစွာဖြင့်ရေးထားသော string တစ်ခုဖြစ်ပြီးစနစ်နှင့်ဆက်စပ်သောလမ်းကြောင်းများခွဲထွက်သူများ (ဥပမာ, အူမကြီးနှင့် semux နှင့် semux နှင့် semicolon) ။

2 ။ is_readable () ?

is_readable () ဖိုင်တစ်ခုသည်ဖိုင်တစ်ခုရှိ, မရှိ, ဖတ်ရှုနိုင်သောခွင့်ပြုချက်များရှိ, မရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။ ၎င်းသည် boolean value ကိုပြန်ပို့သည်, မှန်ကန်သော နည်းလမ်းဆိုသည်မှာဖိုင်တည်ရှိပြီးဖတ်နိုင်သည်, ဖတ်နိုင်သည်

 if (is_readable('/path/to/file.php')) {
    echo "ဖိုင်ဖတ်လို့ရပါ";
} else {
    echo "ဖိုင်မဖတ်နိုင်သောဖိုင်မရှိပါ";
}

3 ။ ဒီနှစ်ခုလုပ်ဆောင်ချက်နှစ်ခုကိုပေါင်းစပ်ပါ

တခါတရံဖိုင်၏တည်နေရာအတိအကျကိုကျွန်ုပ်တို့မသိပါ။ ၎င်းတွင်ထည့်သွင်းခြင်း ဖြင့်သတ်မှတ်ထားသောလမ်းညွှန်တွင်တည်ရှိနိုင်သည်ကိုကျွန်ုပ်တို့သာသိသည်။ ဤအချက်မှာကျွန်ုပ်တို့သည် file ကိုမည်သည့်ဖိုင်ရှိမရှိမရှိကိုဆုံးဖြတ်ရန် Get_includude_Path () နှင့် is_readable () ကို သုံးနိုင်သည်။ ဤလမ်းညွှန်များတွင်ဖတ်ရှုနိုင်သည်။

ဖိုင်အမျိုးအစားကိုလက်ရှိ inters_path တွင်ဖတ်နိုင်မလားစစ်ဆေးရန်ဥပမာတစ်ခုမှာဥပမာတစ်ခုဖြစ်သည်။

 function isFileReadableInIncludePath($filename) {
    $paths = explode(PATH_SEPARATOR, get_include_path());

    foreach ($paths as $path) {
        $fullPath = rtrim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . $filename;
        if (is_readable($fullPath)) {
            return $fullPath; // ဖတ်လို့ရအောင်ဖိုင်ကိုလမ်းကြောင်းအပြည့်အစုံပြန်သွားသည်
        }
    }

    return false; // အဘယ်သူမျှမဖတ်မရနိုင်သောဖိုင်များကိုလမ်းကြောင်းအားလုံးမှာမတွေ့ပါ
}

အသုံးပြုမှုဥပမာ -

 $file = 'config.php';

$result = isFileReadableInIncludePath($file);

if ($result !== false) {
    echo "ဖိုင်ဖတ်လို့ရပါ,လမ်းကြောင်းက:$result";
    include $result;
} else {
    echo "ဖိုင်ထဲမှာဖြစ်ပါတယ် include_path ဖတ်လို့မရပါဘူးသို့မဟုတ်မတည်ရှိပါဘူး";
}

4 ။ လက်တွေ့ကျသော application အခြေအနေများ

သင်သည်ကြီးမားသော application တစ်ခုတည်ဆောက်နေသည်ဆိုပါစို့။ ဥပမာ - configuration file သည်လမ်းကြောင်းများစွာတွင်တည်ရှိနိုင်သည်။

  • / usr / local / lib / myapp /

  • / အိမ် / အသုံးပြုသူ / MyApp / MyApp / ပါဝင်သည် /

  • လက်ရှိအလုပ်လုပ်လမ်းညွှန်

ဤလမ်းကြောင်းများကို PHP's ChangePath မှထည့်နိုင်သည်။

 set_include_path(
    get_include_path() . PATH_SEPARATOR .
    '/usr/local/lib/myapp/' . PATH_SEPARATOR .
    '/home/user/myapp/includes/'
);

ထို့နောက်အထက်ပါလုပ်ဆောင်ချက်များကို configuration file ကိုလုံခြုံစွာမပါ 0 င်ဘဲသို့မဟုတ်ခွင့်ပြုချက်မရှိပါ။

 $configFile = isFileReadableInIncludePath('config.php');

if ($configFile) {
    include $configFile;
} else {
    die('configuration ဖိုင်များကိုလက်လှမ်းမမီပါ');
}

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

  1. is_readable () PHP ၏ Open_basedir က န့်သတ်ချက်များနှင့်ဆက်စပ်သော operating system အဆင့်တွင်ဖတ်နိုင်မှုကိုစစ်ဆေးသည်။ Configuration သည် PHP ကိုဆက်စပ်သောလမ်းညွှန်များကိုလက်လှမ်းမီအောင်တားဆီးရန်သေချာအောင်လုပ်ပါ။

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

  3. အကယ်. သင်သည်သင်၏စီမံကိန်းတွင်အလိုအလျောက် 0 င်ရောက်ခြင်းယန္တရားကိုအသုံးပြုပါကသင်၏စီမံကိန်းတွင်ဤနည်းလမ်းကိုမလိုအပ်တော့ပါ။ စီမံကိန်း၏အမှန်တကယ်လိုအပ်ချက်များနှင့်အညီအသုံးချရန်လိုအပ်သည်။

6 ။ နိဂုံးချုပ်

Get_includude_Path () နှင့် is_readable ပေါင်းစပ်ခြင်း () ဖိုင်သည်ပါ 0 င်သည့်လမ်းကြောင်းတွင်ရှိ, ၎င်းသည်အထူးသဖြင့် Modular Design သို့မဟုတ် Multipather Deployment Powarios တွင်လက်တွေ့ကျသည်။ ဤလုပ်ဆောင်ချက်များကိုအသုံးပြုခြင်းသည် code ၏ကြံ့ခိုင်ခြင်းနှင့်ထိန်းသိမ်းခြင်းကိုပိုမိုကောင်းမွန်စေသည်။