ထုတ်လုပ်မှုကြားခံထိန်းချုပ်မှုအတွက် PHP ကိုအသုံးပြုသောအခါ developer များသည် Ob_start မှတစ်ဆင့် cache handlers တစ်ခုကိုမကြာခဏမှတ်ပုံတင်ကြသည်။ သို့သော်စီမံကိန်းအတွင်းရှိ buffer processing function မျိုးစုံကိုထပ်ခါတလဲလဲထုတ်ပြန်ပါက၎င်းသည် output ကိုအကြိမ်ပေါင်းများစွာလုပ်ဆောင်နိုင်ပြီးစွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်စေနိုင်သည်။
ဤမလိုအပ်သောမှတ်ပုံတင်ခြင်းကိုရှောင်ရှားနိုင်ရန်အတွက် Ob_list_Handlers () function ကိုသုံးနိုင်သည်။ လက်ရှိမှတ်ပုံတင်ထားသော output output buffering programs များအားကြည့်ရှုရန်နှင့်အမှန်တကယ်အခြေအနေများအပေါ် အခြေခံ. ဆုံးဖြတ်ချက်များနှင့်ထိန်းချုပ်မှုများကိုကြည့်ရှုရန် OB_List_Handlers () function ကိုသုံးနိုင်သည်။
ob_list_handlers () သည် PHP မှပါ 0 င်သည့်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ Ob_start () ဟုခေါ်သည့်အခါတိုင်း callback function ကိုဖြတ်သန်းသွားသောအခါ function name ကို buffer process stack တွင်ထည့်သွင်းထားသည်။
array(
[0] => default output handler,
[1] => gzhandler
)
လျှောက်လွှာတစ်ခု၏အစိတ်အပိုင်းများကိုမိတ္တူကူးပါ။
ob_start('gzhandler');
ရလဒ်မှာ output content သည် Gzhandler မှဖိအားပေးမှုကိုအကြိမ်ကြိမ်ဖိအားပေးခံရခြင်းကြောင့် browser ကိုမှန်ကန်စွာခွဲခြမ်းစိတ်ဖြာရန်ပျက်ကွက်ခြင်းသို့မဟုတ်အကြောင်းအရာပုံမှန်မဟုတ်သောဖြစ်သည်။
ဤအရာကိုကာကွယ်ရန် OB_List_Handlers () ကိုသုံးနိုင်သည်။ output buffering function အသစ်ကိုမှတ်ပုံတင်ခြင်းမပြုမီစစ်ဆေးရန်ကျွန်ုပ်တို့သည် OB_List_Handlers () ကို စစ်ဆေးနိုင်သည်။
Gzhandler ၏ မလုံလောက်မှုကိုမည်သို့ရှောင်ရှားရမည်ကိုပြသသည့်အမှန်တကယ်ကုဒ်နမူနာတစ်ခုရှိသည်။
<?php
// ကိုင်တွယ်သူတစ် ဦး မှတ်ပုံတင်ခဲ့ရှိမရှိစစ်ဆေးပါ
function start_unique_ob_handler($handlerName) {
$handlers = ob_list_handlers();
if (!in_array($handlerName, $handlers)) {
ob_start($handlerName);
} else {
// သင်မှတ်တမ်းများသို့မဟုတ် output ကို debugging သတင်းအချက်အလက်များကိုမှတ်တမ်းတင်နိုင်ပါတယ်
error_log("output buffer handler '$handlerName' မှတ်ပုံတင်ထားပါသည်,ထပ်တူမှတ်ပုံတင်ခြင်းကိုကျော်ပါ。");
}
}
// ငါတို့သုံးချင်တာဆိုပါစို့ gzip ချုံ့ output ကို
start_unique_ob_handler('gzhandler');
// output ကိုအကြောင်းအရာ
echo "ငါတို့ site မှကြိုဆိုပါသည်:https://gitbox.net/page";
?>
GZHANDLER အရင်မှတ်ပုံတင်ခြင်းမရှိပါက function ကိုထည့်သွင်းလိမ့်မည်။ ဒီလိုမှမဟုတ်ရင်အဲဒါကိုလုံခြုံစွာကျော်သွားလိမ့်မယ်။
Modular Systems တွင် outpar outparing buffering ကိုအသုံးပြုသောအခါ (ဥပမာ plug-in ဗိသုကာများကဲ့သို့) သင်၏ကိုယ်ပိုင်ကြားခံမှတ်ပုံတင်ခြင်းလုပ်ဆောင်မှုကို adapcapsult adapcapsulate on unified_handlers () ကို သုံးရန်အကြံပြုသည်။
စီမံကိန်းတွင်အတူတကွအလုပ်လုပ်နေသော developer များစွာရှိပါက OB_START ၏ကြိမ်နှုန်းနှင့်တည်နေရာကိုဂရုပြုရန်အကြံပြုသည်။
မှတ်ချက် - PHP အတွက် default outler handler သည်အသုံးပြုသူသတ်မှတ်ထားသော handler နှင့်မသက်ဆိုင်သော "default outler handler" ဖြစ်သည်။ သို့သော်စာရင်းတွင်လည်းပါ 0 င်မည်ဖြစ်သည်။
ob_list_handlers () ကို အသုံးပြု. PHP applications များတွင် output buffer handlers များကိုထပ်ခါတလဲလဲမှတ်ပုံတင်ခြင်းကိုပြန်လည်မှတ်ပုံတင်ခြင်းကိုတားဆီးရန်ကူညီရန်ရိုးရှင်းသော်လည်းအလွန်ထိရောက်သောနည်းလမ်းဖြစ်သည်။ ဤနည်းပညာပိုင်းဆိုင်ရာအားဖြင့်ပရိုဂရမ်၏ကြံ့ခိုင်မှုနှင့် output content ၏ရှေ့နောက်ညီညွတ်မှုကိုတိုးတက်အောင်လုပ်နိုင်သည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အငြင်းပွားဖွယ်ရာမှတ်ပုံတင်ခြင်းမပြုမီစစ်ဆေးခြင်းအလေ့အထကိုဖော်ထုတ်ခြင်းသည်အရည်အသွေးမြင့် PHP applications များကိုတည်ဆောက်ခြင်း၏အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။
output output ကိုကြားခံအတွက်ထိန်းချုပ်မှုဆိုင်ရာအကြံပြုချက်များအကြောင်းပိုမိုလေ့လာလိုပါကဥပမာများနှင့်ညွှန်ကြားချက်များအတွက်တရားဝင်မှတ်တမ်းများကိုသင်ရည်ညွှန်းနိုင်သည် ။