Realpath () function ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
string realpath(string $path)
$ Path : ခွဲခြမ်းစိတ်ဖြာရန်လမ်းကြောင်း။
ပြန်လာတန်ဖိုး - အောင်မြင်သောအခါပုံမှန်ပကတိလမ်းကြောင်းကိုပြန်ပို့သည်။ ပျက်ကွက်သောအခါ မှားယွင်းသော ပြန်လာ။
ဤတွင်လက်ရှိ directory ရှိ folder တစ်ခုသို့အကြွင်းမဲ့လမ်းကြောင်းကိုရယူခြင်း၏အခြေခံဥပမာတစ်ခုဖြစ်သည်။
$relativePath = 'uploads/images';
$absolutePath = realpath($relativePath);
if ($absolutePath !== false) {
echo "ပကတိလမ်းကြောင်းသည်: $absolutePath";
} else {
echo "လမ်းကြောင်းမတည်ရှိသို့မဟုတ်ခွဲခြမ်းစိတ်ဖြာမရနိုင်ပါ。";
}
Realpath () သည် အမှန်တကယ်တည်ဆဲလမ်းကြောင်းကို သာခွဲခြမ်းစိတ်ဖြာနိုင်သည်။ အကယ်. သင်ဖြတ်သန်းသွားသောလမ်းကြောင်းသည်ဖိုင်စနစ်တွင်မတည်ရှိပါက function သည် မှားယွင်းသော ပြန်လာလိမ့်မည်။ ထို့ကြောင့်၎င်းကိုအသုံးပြုသောအခါလမ်းကြောင်းတည်ရှိမသင့်ကို ဦး စွာဆုံးဖြတ်ရန်အကြံပြုသည်။
if (file_exists($relativePath)) {
$real = realpath($relativePath);
echo $real;
} else {
echo "လမ်းကြောင်းမတည်ရှိပါဘူး";
}
Realpath () သင်္ကေတ link ကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ထိုကဲ့သို့သောသင်္ကေတ များကို ဖယ်ရှားပေးသည် ။ လမ်းကြောင်း၌တည်၏။ ဥပမာအားဖြင့်:
$path = '../project/./uploads/../logs';
echo realpath($path);
ဤခေါ်ဆိုမှုသည် Project / logs သို့အကြွင်းမဲ့လမ်းကြောင်းကိုပြန်ပို့လိမ့်မည်။
Realpath () သည် URL-based tool တစ်ခုမဟုတ်ဘဲ server file system ပေါ်တွင် အခြေခံ. လမ်းကြောင်း resolution tool ကိုသတိပြုသင့်သည်။ https://gitbox.net/uploads ၏နံပါတ်များ ကဲ့သို့သော URL များကိုသင်ကိုင်တွယ်နေပါက၎င်းကို reality မှတစ်ဆင့်ခွဲထုတ်။ မရပါ။ ဆာဗာဖိုင်လမ်းကြောင်းအတွက်သာအသုံးပြုသင့်သည်။
$serverPath = $_SERVER['DOCUMENT_ROOT'] . '/uploads/images';
$real = realpath($serverPath);
ဤတွင်ကျွန်ုပ်တို့သည် spliced လမ်းကြောင်းများကိုခွဲထုတ်လိုက်သည်။
/var/www/html/uploads/images
အဲဒီအစား
https://gitbox.net/uploads/images
အသုံးပြုသူများကအသုံးပြုသော Pather Parameters များကိုထုတ်ယူသည့်အခါလမ်းကြောင်းသည်နယ်နိမိတ်မှထွက်ပေါ်လာခြင်းရှိ, မရှိမရှိဆုံးဖြတ်ရန် Realpath () ကို လုံခြုံရေးကာကွယ်စောင့်ရှောက်ရေးယန္တရားအဖြစ်အသုံးပြုနိုင်သည်။ ဥပမာအားဖြင့်:
$userPath = $_GET['path'];
$baseDir = realpath('/var/www/gitbox/uploads');
$fullPath = realpath($baseDir . '/' . $userPath);
if (strpos($fullPath, $baseDir) === 0) {
echo "လုံခြုံတဲ့လမ်းကြောင်း: $fullPath";
} else {
echo "တရားမဝင်ဝင်ရောက်ခွင့်လမ်းကြောင်းကိုပိတ်ဆို့ထားသည်。";
}
ဤနည်းလမ်းသည်အသုံးပြုသူများအား server-sensitive files များကို စ. လမ်းများမှတစ်ဆင့် server-sensitive ဖိုင်များမှကြည့်ရှုခြင်းမှကာကွယ်ပေးသည်။