PHP တွင် Get_includude_Path () နှင့် is_readable () နှင့် is_readable () သည် File ပါ 0 င်ခွင့်နှင့်ခွင့်ပြုချက်တရားစီရင်ပိုင်ခွင့်များကိုကိုင်တွယ်ရာတွင်အထူးအရေးကြီးသည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခုကို အသုံးပြု. ဖိုင်တစ်ခုစီသည် ထည့်သွင်းထားသော လမ်းကြောင်းဖြင့်သတ်မှတ်ထားသောလမ်းကြောင်းတွင်ဖော်ပြထားသောလမ်းတွင်တည်ရှိမှုရှိမရှိဆုံးဖြတ်ရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါမည်။
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) ။
is_readable () ဖိုင်တစ်ခုသည်ဖိုင်တစ်ခုရှိ, မရှိ, ဖတ်ရှုနိုင်သောခွင့်ပြုချက်များရှိ, မရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။ ၎င်းသည် boolean value ကိုပြန်ပို့သည်, မှန်ကန်သော နည်းလမ်းဆိုသည်မှာဖိုင်တည်ရှိပြီးဖတ်နိုင်သည်, ဖတ်နိုင်သည် ။
if (is_readable('/path/to/file.php')) {
echo "ဖိုင်ဖတ်လို့ရပါ";
} else {
echo "ဖိုင်မဖတ်နိုင်သောဖိုင်မရှိပါ";
}
တခါတရံဖိုင်၏တည်နေရာအတိအကျကိုကျွန်ုပ်တို့မသိပါ။ ၎င်းတွင်ထည့်သွင်းခြင်း ဖြင့်သတ်မှတ်ထားသောလမ်းညွှန်တွင်တည်ရှိနိုင်သည်ကိုကျွန်ုပ်တို့သာသိသည်။ ဤအချက်မှာကျွန်ုပ်တို့သည် 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 ဖတ်လို့မရပါဘူးသို့မဟုတ်မတည်ရှိပါဘူး";
}
သင်သည်ကြီးမားသော 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 ဖိုင်များကိုလက်လှမ်းမမီပါ');
}
is_readable () PHP ၏ Open_basedir က န့်သတ်ချက်များနှင့်ဆက်စပ်သော operating system အဆင့်တွင်ဖတ်နိုင်မှုကိုစစ်ဆေးသည်။ Configuration သည် PHP ကိုဆက်စပ်သောလမ်းညွှန်များကိုလက်လှမ်းမီအောင်တားဆီးရန်သေချာအောင်လုပ်ပါ။
အသုံးပြုသူမှထည့်သွင်းထားသောဖိုင်အမည်ကိုအသုံးပြုသောအခါ directory traversal ကဲ့သို့သောလုံခြုံရေးအားနည်းချက်များကိုကာကွယ်ရန်အတည်ပြုစစ်ဆေးသင့်သည်။
အကယ်. သင်သည်သင်၏စီမံကိန်းတွင်အလိုအလျောက် 0 င်ရောက်ခြင်းယန္တရားကိုအသုံးပြုပါကသင်၏စီမံကိန်းတွင်ဤနည်းလမ်းကိုမလိုအပ်တော့ပါ။ စီမံကိန်း၏အမှန်တကယ်လိုအပ်ချက်များနှင့်အညီအသုံးချရန်လိုအပ်သည်။
Get_includude_Path () နှင့် is_readable ပေါင်းစပ်ခြင်း () ဖိုင်သည်ပါ 0 င်သည့်လမ်းကြောင်းတွင်ရှိ, ၎င်းသည်အထူးသဖြင့် Modular Design သို့မဟုတ် Multipather Deployment Powarios တွင်လက်တွေ့ကျသည်။ ဤလုပ်ဆောင်ချက်များကိုအသုံးပြုခြင်းသည် code ၏ကြံ့ခိုင်ခြင်းနှင့်ထိန်းသိမ်းခြင်းကိုပိုမိုကောင်းမွန်စေသည်။