လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP PREATPATH ​​ကိုသုံးပါ

PHP PREATPATH ​​ကိုသုံးပါ

gitbox 2025-06-07

realath () function ကိုမိတ်ဆက်

Realpath () function ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 string realpath(string $path)
  • $ Path : ခွဲခြမ်းစိတ်ဖြာရန်လမ်းကြောင်း။

  • ပြန်လာတန်ဖိုး - အောင်မြင်သောအခါပုံမှန်ပကတိလမ်းကြောင်းကိုပြန်ပို့သည်။ ပျက်ကွက်သောအခါ မှားယွင်းသော ပြန်လာ။

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

ဤတွင်လက်ရှိ directory ရှိ folder တစ်ခုသို့အကြွင်းမဲ့လမ်းကြောင်းကိုရယူခြင်း၏အခြေခံဥပမာတစ်ခုဖြစ်သည်။

 $relativePath = 'uploads/images';
$absolutePath = realpath($relativePath);

if ($absolutePath !== false) {
    echo "ပကတိလမ်းကြောင်းသည်: $absolutePath";
} else {
    echo "လမ်းကြောင်းမတည်ရှိသို့မဟုတ်ခွဲခြမ်းစိတ်ဖြာမရနိုင်ပါ。";
}

မှတ်သားရန်အရာ

1 ။ အဆိုပါပစ်မှတ်လမ်းကြောင်းတည်ရှိရမည်ဖြစ်သည်

Realpath () သည် အမှန်တကယ်တည်ဆဲလမ်းကြောင်းကို သာခွဲခြမ်းစိတ်ဖြာနိုင်သည်။ အကယ်. သင်ဖြတ်သန်းသွားသောလမ်းကြောင်းသည်ဖိုင်စနစ်တွင်မတည်ရှိပါက function သည် မှားယွင်းသော ပြန်လာလိမ့်မည်။ ထို့ကြောင့်၎င်းကိုအသုံးပြုသောအခါလမ်းကြောင်းတည်ရှိမသင့်ကို ဦး စွာဆုံးဖြတ်ရန်အကြံပြုသည်။

 if (file_exists($relativePath)) {
    $real = realpath($relativePath);
    echo $real;
} else {
    echo "လမ်းကြောင်းမတည်ရှိပါဘူး";
}

2 ။ သင်္ကေတ link များနှင့်လမ်းကြောင်းပုံမှန်

Realpath () သင်္ကေတ link ကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ထိုကဲ့သို့သောသင်္ကေတ များကို ဖယ်ရှားပေးသည် လမ်းကြောင်း၌တည်၏။ ဥပမာအားဖြင့်:

 $path = '../project/./uploads/../logs';
echo realpath($path);

ဤခေါ်ဆိုမှုသည် Project / logs သို့အကြွင်းမဲ့လမ်းကြောင်းကိုပြန်ပို့လိမ့်မည်။

3 ။ URL လမ်းကြောင်းများမှကွဲပြားခြားနားမှု

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

4 ။ လုံခြုံရေးကိုတိုးတက်စေရန် realappath () ကိုသုံးပါ

အသုံးပြုသူများကအသုံးပြုသော 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 ဖိုင်များမှကြည့်ရှုခြင်းမှကာကွယ်ပေးသည်။