လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> file content ကို dynamically load လုပ်ပါ

file content ကို dynamically load လုပ်ပါ

gitbox 2025-05-26

PHP Development တွင်ကျွန်ုပ်တို့သည်ဖိုင်များကိုတက်ကြွစွာဖွင့်ပြီး၎င်းတို့၏ contents များကိုဖတ်ရန်လိုအပ်သည်။ Get_include_Path () နှင့် File_get_Contents () သည် PHP ၏လမ်းကြောင်းတွင်ပါ 0 င်သည့်ဖိုင်အကြောင်းအရာများကိုအလွယ်တကူဖတ်ရှုရန်အတူတကွအသုံးပြုနိုင်သည့်လက်တွေ့ကျတဲ့လုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည်ဖိုင်အိတ်များကိုပုံမှန်ဖွင့ ်. ဖတ်ရန်နှင့်ဖတ်ရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။

1 ။ get_include_path ()?

Get_include_PATH () function ကိုလက်ရှိ PHP Running ပတ်ဝန်းကျင်တွင် configured project ကိုရရှိရန်အသုံးပြုသည်။ ပါ 0 င်သည့်လမ်းကြောင်းသည်ဖိုင်များကိုရှာဖွေသောအခါ PPP ရှာဖွေမှုများကိုအလှည့်အပြောင်းရှာဖွေသည့်လမ်းညွှန်များစာရင်းဖြစ်သည်။ ထည့်သွင်းခြင်း , လိုအပ်သည် သို့မဟုတ် file_get_contents () file_get_contents () ဖိုင်များကိုအသုံးပြုသောအခါ, ဖိုင်ကိုအကြွင်းမဲ့လမ်းမပေးပါက PHP သည်ဖိုင်များရှာဖွေလိမ့်မည်။

ခေါ်ဆိုမှုဥပမာ -

 $includePath = get_include_path();
echo $includePath;

ရလဒ်မှာရရှိသောရလဒ်မှာ systems sepacen seaschator များ (0 င်းဒိုးအောက်ရှိ colon များ , 0 င်းဒိုးအောက်ရှိ colon ;

2 ။ File_Get_contents ၏အကျဉ်းချုပ်ဖော်ပြချက် ()

File_get_Contents () function ကို function ကို string တစ်ခုသို့ဖတ်ရန်အသုံးပြုသည်။ ၎င်းသည်ဒေသဖွံ့ကီများကိုဖတ်ရှုခြင်းနှင့် URLs မှညွှန်ပြနေသောဝေးလံခေါင်သီသောအရင်းအမြစ်များကိုဖတ်ရှုခြင်းကိုထောက်ခံသည်။

ဥပမာအားဖြင့်:

 $content = file_get_contents('example.txt');
echo $content;

အကယ် . ဥပမာအား ဖြင့်လက်ရှိအလုပ်လုပ်နေသောလမ်းညွှန်တွင်သို့မဟုတ်လမ်းကြောင်းပါ 0 င်ပါကအကြောင်းအရာကိုဖတ်။ ပုံနှိပ်ထားသည်။

3 ။ get_include_path () နှင့် file_get_contentents () ကိုပေါင်းစပ်ပါ

တခါတရံတွင်ကျွန်ုပ်တို့သည်ဖိုင်၏တိကျသောလမ်းကြောင်းကိုမသိဘဲပြုလုပ်ထားသော configure အရဖိုင်တွဲများကိုရှာဖွေ။ ဖတ်ရန်လိုအပ်သည်။ ဤအချိန်တွင်သင်သည် Get_include_PATH () ကို သုံး. ရရှိနိုင်သည့်လမ်းကြောင်းများအားလုံးကိုအရင်ရရန်သုံးနိုင်သည်, ထို့နောက်ဖိုင်များကိုတစ်ခုစီဖတ်ရန်ကြိုးစားနိုင်သည်။

နမူနာကုဒ်:

 <?php

function loadFileFromIncludePath(string $filename): ?string {
    $paths = explode(PATH_SEPARATOR, get_include_path());
    
    foreach ($paths as $path) {
        $fullPath = rtrim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . $filename;
        if (file_exists($fullPath) && is_readable($fullPath)) {
            return file_get_contents($fullPath);
        }
    }
    return null; // ဖိုင်ကိုရှာမတွေ့နိုင်ပါ
}

// နမူနာခေါ်ဆိုမှု
$filename = 'data.txt';
$content = loadFileFromIncludePath($filename);

if ($content !== null) {
    echo "အကြောင်းအရာအကြောင်းအရာ:\n" . $content;
} else {
    echo "စာချုပ်စာတမ်း {$filename} ရှာမတွေ့ပါသို့မဟုတ်မဖတ်နိုင်ပါ。";
}

ဤလုပ်ဆောင်ချက်သည်အောက်ပါတို့ကိုလုပ်ဆောင်သည် -

  1. get_include_path မှတဆင့်ရှာဖွေရေးလမ်းကြောင်းအားလုံးကိုရယူပါ။

  2. Exploit ကိုသုံးပါ။

  3. လမ်းကြောင်းတစ်ခုစီမှတစ်ဆင့် target file name ကိုပြည့်စုံစေရန်လမ်းကြောင်းကိုဖြည့်ပါ။

  4. ဖိုင်တည်ရှိပြီးဖတ်နိုင်မလားစစ်ဆေးပါ။ အကယ်. ၎င်းသည်အောင်မြင်ပါက၎င်းသည်ဖိုင်ကိုဖတ်ရန်နှင့်ပြန်လာရန် ဖိုင်အမျိုးအစားဖတ်ရန် () ကို အသုံးပြုသည်။

  5. အဆိုပါဖြတ်သန်းပြီးစီးခဲ့နှင့်နေဆဲရှာမတွေ့ပါက Null ပြန်လာပါ။

ဤနည်းအားဖြင့်ပရိုဂရမ်သည် configure အားလုံးပါဝင်သည့်အရာအားလုံးတွင်ဖိုင်များကိုအလိုအလျောက်ရှာဖွေဖော်ထုတ်နိုင်သည်။

4 ။ URL ဖိုင်များကိုဖတ်ရှုခြင်းနှင့်ဒိုမိန်းအမည်များကိုအစားထိုးခြင်း

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

 <?php

function getContentFromUrl(string $url): ?string {
    $parsedUrl = parse_url($url);
    if (!$parsedUrl || !isset($parsedUrl['host'])) {
        return null;
    }

    // အဖြစ်ဒိုမိန်းအမည်ကိုအစားထိုးလိုက်ပါ gitbox.net
    $parsedUrl['host'] = 'gitbox.net';

    // ပြန်လည်ငေှ့ URL
    $newUrl = (isset($parsedUrl['scheme']) ? $parsedUrl['scheme'] . '://' : '') .
              $parsedUrl['host'] .
              (isset($parsedUrl['path']) ? $parsedUrl['path'] : '') .
              (isset($parsedUrl['query']) ? '?' . $parsedUrl['query'] : '');

    // အကြောင်းအရာကိုဖတ်ပါ
    return @file_get_contents($newUrl);
}

// နမူနာ
$url = 'https://example.com/api/data.json';
$content = getContentFromUrl($url);

if ($content !== false) {
    echo "远程အကြောင်းအရာအကြောင်းအရာ:\n" . $content;
} else {
    echo "无法读取远程စာချုပ်စာတမ်း。";
}

ဒီ function က:

  1. Input URL ကိုဖြေရှင်းပါ။

  2. ဒိုမိန်းအမည် gitbox.net ကိုအစားထိုးပါ။

  3. အသစ်တစ်ခုကို URL သို့ပြန်လည်ထူထောင်။

  4. အကြောင်းအရာကိုဖတ်ရန်နှင့်ပြန်ပို့ရန် file_get_contontents () ကို သုံးပါ။

5 ။ အကျဉ်းချုပ်

  • PHP ၏လမ်းကြောင်းကိုရရှိရန် get_include_path () ကို သုံးပါ။ ဖိုင်များကိုရှာဖွေရန်ပိုမိုလွယ်ကူစေသည်။

  • File_Get_Contents () ဖိုင်အကြောင်းအရာများကိုဖတ်ရန်, ဖိုင်များနှင့် URL များကိုထောက်ပံ့ရန် () ကိုဖတ်ရန်

  • နှစ်ခုကိုပေါင်းစပ်ပြီး code ပြောင်းလွယ်ပြင်လွယ်တိုးတက်စေရန်ဖိုင်အကြောင်းအရာများကို dvonatically နှင့် load လုပ်နိုင်သည်။

  • URL ဖိုင်ကိုဖတ်သည့်အခါ URL ကိုခွဲခြမ်းစိတ်ဖြာခြင်းဖြင့် domain name အစားထိုးလုပ်ဆောင်မှုကိုအကောင်အထည်ဖော်နိုင်သည်။

အထက်ပါနည်းလမ်းများမှတစ်ဆင့် developer များကဖိုင်တင်ခြင်းနှင့်အကြောင်းအရာဖတ်ရန်လိုအပ်ချက်များနှင့်အကြောင်းအရာဖတ်ရှုခြင်းဆိုင်ရာလိုအပ်ချက်များနှင့်ကွဲပြားသောပတ်ဝန်းကျင် configurations များနှင့်ဝေးလံခေါင်သီသောသယံဇာတအရင်းအမြစ်များကိုလိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်နိုင်သည်။