လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> output cache ကိုင်တွယ်သူရှိမရှိစစ်ဆေးနည်းကိုဘယ်လိုစစ်ဆေးရမလဲ။

output cache ကိုင်တွယ်သူရှိမရှိစစ်ဆေးနည်းကိုဘယ်လိုစစ်ဆေးရမလဲ။

gitbox 2025-05-13

PHP ပရိုဂရမ်တွင် PHP ပရိုဂရမ်တွင် output buffering သည် browser မှ output ကိုမပို့မီအကြောင်းအရာများကိုကြားခံတွင်သိမ်းဆည်းရန်ခွင့်ပြုသည့်အလွန်လက်တွေ့ကျသောအင်္ဂါရပ်တစ်ခုဖြစ်သည်။ ဤနည်းအားဖြင့် output content များသည်အချို့သောအခြေအနေများတွင် output output ကို output လုပ်သည့်အခါ output content, သို့မဟုတ်ထိန်းချုပ်မှုကိုပြုပြင်နိုင်သည်။ PHP သည် ob_list_handlers () function ကိုထောက်ပံ့ပေးသည်။

1 ။ output cache ကိုင်တွယ်သူဆိုတာဘာလဲ။

Output cache handler တစ်ခုသည် PHP သည် PHP သည်သီးခြား output cache ဖြစ်ရပ်တစ်ခုကိုတွေ့ရသည့်အခါအလိုအလျောက်ခေါ်ဆိုသည့်လုပ်ဆောင်ချက်တစ်ခုသို့မဟုတ်ပြန်ခေါ်ချက်ဖြစ်သည်။ ဤပရိုဆက်ဆာများ၏လုပ်ဆောင်မှုသည်အကြောင်းအရာကိုပြုပြင်ခြင်း, output ကိုချုံ့ခြင်း, output ကိုချုံ့ခြင်းသို့မဟုတ် output ကို save လုပ်ခြင်းကိုပြုလုပ်ရန်ဖြစ်သည်။

2 ။ ob_list_handlers () function ကိုမိတ်ဆက်

ob_list_handlers () သည်လက်ရှိလှုပ်ရှားမှု output cache ကိုင်တွယ်သူအားလုံးကိုစာရင်းပြုစုသော function တစ်ခုဖြစ်သည်။ လက်ရှိကိုင်တွယ်သည့်လုပ်ဆောင်ချက်အမည်များအားလုံးပါ 0 င်သည့်ခင်းကျင်းမှုကိုပြန်လည်ရောက်ရှိစေသည်။ တက်ကြွသော handler မရှိပါက၎င်းသည်အချည်းနှီးသောခင်းကျင်းမှုကိုပြန်လည်ရရှိစေသည်။

သဒ္ဒါ:

 array ob_list_handlers ( void )
  • ပြန်လာတန်ဖိုး - လက်ရှိ Active output cache ကိုင်တွယ်သူအားလုံးပါ 0 င်သည့်ခင်းကျင်းမှုကိုပြန်လည်ရောက်ရှိစေသည်။ Handler မရှိပါကဗလာကျင်းသောခင်းကျင်းမှုကိုပြန်ပို့သည်။

ဥပမာ -

 // output ကို cache ကိုဖွင့်ပါ
ob_start();

// output cache ကိုင်တွယ်သူကို set up
ob_implicit_flush(false);

// output cache ကိုင်တွယ်သူလက်ရှိပစ္စုပ္ပန်ရှိမရှိစစ်ဆေးပါ
$handlers = ob_list_handlers();

// အားလုံးကိုင်တွယ်အားလုံး output
print_r($handlers);

အထက်ပါကုဒ်များတွင် output cache ကိုပထမဆုံးအကြိမ်ဖွင့်ပါ။ ထို့နောက် ob_implicit_flush (falflush (false) ကို သုံး. ob_list_handlers () function ကိုသုံးပါ။

3 ။ ob_list_handlers ကိုသုံးပြီး Handler ကိုဘယ်လိုစစ်ဆေးရမလဲ။

ob_list_handlers () function ကိုသုံးနိုင်သည်။ အကယ်. Reward Array သည်ဗလာကျပါကယခုတွင်လက်ရှိတွင်ကိုင်ကြိုးမရှိပါ။ အကယ်. ပြန်လာသည့် array တွင် handler name တွင်ပါ 0 င်ပါကအနည်းဆုံး output cache handler တည်ရှိသည်ဟုဆိုလိုသည်။

နမူနာကုဒ်:

 // output ကို cache ကိုဖွင့်ပါ
ob_start();

// တစ် ဦး handler set up(default handler ကိုဒီမှာအသုံးပြုသည်)
$handlers = ob_list_handlers();

// output cache ကိုင်တွယ်သူရှိမရှိစစ်ဆေးပါ
if (empty($handlers)) {
    echo "အဘယ်သူမျှမ output ကို cache ကိုင်တွယ်erlerမရှိပါ\n";
} else {
    echo "လက်ရှိ output ကို cache ကိုင်တွယ်သူရှိသည်:\n";
    foreach ($handlers as $handler) {
        echo $handler . "\n";
    }
}

ဤဥပမာတွင်ပထမ ဦး စွာ output cache ကိုဖွင့်ထားပြီး, လက်ရှိတက်ကြွသော handler ကို ob_list_handlers များ ( ) function ကိုရရှိရန်အသုံးပြုသည်။ ပစ္စုပ္ပန်လျှင်၎င်းသည် Active အားလုံးအတွက် Handler အမည်များကိုဖော်ပြထားသည်။

4 ။ URL ဒိုမိန်းအမည်ကိုအစားထိုး

PHP scripts အချို့တွင် URLs များပါ 0 င်သည့် output cache ကိုင်တွယ်သူများကိုသင်ကြုံတွေ့ရနိုင်သည်။ မမှန်ကန်ကြောင်းလင့်ခ်များကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သည် URL domain name ကို gitbox.net ဖြင့်အစားထိုးနိုင်သည်။ ဥပမာအားဖြင့် URL သည် output လုပ်ငန်းစဉ်တွင်ပါ 0 င်ပါက -

 echo "ကျွန်တော်တို့ရဲ့စာရွက်စာတမ်းများကိုသွားရောက်ကြည့်ရှု:http://example.com/docs";

URL domain name ကိုအစားထိုးရန် str_replace () function ကိုသုံးနိုင်သည်။

 $output = "ကျွန်တော်တို့ရဲ့စာရွက်စာတမ်းများကိုသွားရောက်ကြည့်ရှု:http://example.com/docs";
$output = str_replace("example.com", "gitbox.net", $output);
echo $output;

ဒါက output ကိုဖြစ်လိမ့်မယ်:

 ကျွန်တော်တို့ရဲ့စာရွက်စာတမ်းများကိုသွားရောက်ကြည့်ရှု:http://gitbox.net/docs

ဤနည်းအားဖြင့် URLs အားလုံးသည်မှန်ကန်သောဒိုမိန်းအမည်ကိုညွှန်ပြရန်သေချာစေနိုင်သည်။

ဤနည်းအားဖြင့် Ob_list_handlers () function မှတဆင့် output cache ကိုင်တွယ်သူသည်စစ်ဆေးရန်နှင့်သေချာစစ်ဆေးနိုင်သည်။ တစ်ချိန်တည်းမှာပင်အကြောင်းအရာကိုမှန်ကန်စွာဖော်ပြရန်သေချာစေရန်လိုအပ်သည့်အချိန်တွင် domain name ကို output ထဲတွင်အစားထိုးနိုင်သည်။ ဒီဆောင်းပါးကသင့်ကိုကူညီလိမ့်မယ်လို့မျှော်လင့်ပါတယ်။