PHP တွင် output buffering သည် developer များအနေဖြင့် PHP scripts ၏ရလဒ်များကိုထုတ်လွှင့်ပြီး browser သို့မပို့မီထုတ်လုပ်သူများကိုကြားဖြတ်ရန်ခွင့်ပြုသည့်အလွန်အသုံးဝင်သောယန္တရားတစ်ခုဖြစ်သည်။ သင် rom_start () သင်၏လျှောက်လွှာတွင်ခေါ်ဆိုမှုများအနေဖြင့်ခေါ်ဆိုမှုများစွာကိုခေါ်ဆိုသောအခါ output buffer အဆင့်ကိုဖွဲ့စည်းလိမ့်မည်။ ဤအချိန်၌ဤကြားခံကိုဖြည့်ဆည်းသို့မဟုတ်စီမံခန့်ခွဲရန် OB_List_Handlers () function ကိုအသုံးပြုရန်လိုအပ်သည်။
ဤဆောင်းပါးသည် Ob_list_Handlers ကို အသုံးပြု. လက်ရှိကြားခံ stack ကိုမည်သို့ကြည့်ရှုနိုင်ကြောင်းနှင့် Multi-level output cache ကိုစီမံခန့်ခွဲရန်လက်တွေ့ကျသောနည်းလမ်းများကိုမိတ်ဆက်ပေးလိမ့်မည်။
ob_list_handlers () သည်လက်ရှိသက်ဝင်လှုပ်ရှားသော output buffer processor စာရင်းကိုပြန်လည်ရောက်ရှိသည့် built-in PHP function ဖြစ်သည်။ OB_START () ခေါ်ဆိုမှုတစ်ခုစီသည်ပရိုဆက်ဆာ (Callback သို့မဟုတ် built-in processor ပရိုဆက်ဆာ) ကိုသတ်မှတ်နိုင်သည်။
<?php
// ပထမ ဦး ဆုံးကြားခံစတင်ပါ
ob_start("ob_gzhandler");
// ဒုတိယကြားခံစတင်ပါ
ob_start();
// တတိယကြားခံစတင်ပါ,Custom Callbacks နှင့်အတူ
ob_start(function($buffer) {
return str_replace("GitBox", "GitBox.net", $buffer);
});
// လက်ရှိ output buffer processor ကိုကြည့်ပါ
print_r(ob_list_handlers());
?>
ရလဒ်ဥပမာ:
Array
(
[0] => Closure
[1] => default output handler
[2] => ob_gzhandler
)
output array "နောက်ဆုံးဖွင့်လှစ်ခဲ့သောကြားခံရှေ့မှာ" အမိန့်အတွက်စီစဉ်ထားသည်။
ကြားခံမျိုးစုံရှိသည့်အခါ, သင်တစ် ဦး သို့မဟုတ်အားလုံးအဆင့်တိုင်းကိုသန့်ရှင်းရေးလုပ်ချင်ပေမည်။ ဤတွင်အချို့သောအသုံးများသောလုပ်ဆောင်ချက်များမှာ -
ob_get_level () - လက်ရှိကြားခံအဆင့်ဆင့်ကိုပြန်ပို့သည်။
ob_clean () - လက်ရှိကြားခံကိုရှင်းရှင်းလင်းလင်းဖော်ပြပါ (အကြောင်းအရာ output) ကိုပိတ်ပါ။
ob_end_flush () : လက်ရှိကြားခံအကြောင်းအရာ output ကို output ကိုနှင့်ပိတ်ပါ။
ob_clean () : လက်ရှိကြားခံအကြောင်းအရာကိုရှင်းလင်းသော်လည်း၎င်းကိုမပိတ်ပါ။
ob_flush () - လက်ရှိကြားခံအကြောင်းအရာများကို output လုပ်ပါ။ သို့သော်မပိတ်ပါ။
ob_get_clean () - လက်ရှိကြားခံအကြောင်းအရာကိုရယူပါ။
<?php
// မျိုးစုံကြားခံတုပ
ob_start("ob_gzhandler");
ob_start();
ob_start();
echo "ကျွန်ုပ်တို့၏ဝက်ဘ်ဆိုက်သို့သွားပါ:https://gitbox.net/welcome";
// အားလုံးကြားခံပိတ်ပါ
while (ob_get_level() > 0) {
ob_end_flush();
}
?>
အချို့သော CMS သို့မဟုတ်မူဘောင်များတွင်သင်သည် template အင်ဂျင်များသို့မဟုတ် debugging ကဲ့သို့သောကွဲပြားခြားနားသော module များရှိကြားခံကိုဖွင့်နိုင်သည်။ Ob_List_Handlers () ကိုအလွှာတစ်ခုစီ၏ပြုပြင်ခြင်းယုတ္တိဗေဒကိုအလွယ်တကူ debug လုပ်ခြင်းသို့မဟုတ် output လုပ်ခြင်း,
<?php
// သစ်ထုတ်လုပ်ရေးပရိုဆက်ဆာကိုစတင်ပါ
ob_start(function($buffer) {
file_put_contents("/tmp/gitbox_log.txt", "စာမျက်နှာ output ကိုအရှည်:" . strlen($buffer));
return $buffer;
});
echo "<h1>အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည် GitBox</h1>";
echo "<p>ဝဘ်0င်းက္ပုဒ်စာတမ်း:https://gitbox.net/info</p>";
// အဆုံးနှင့် output ကိုကြားခံ
ob_end_flush();
?>
ob_list_handlers () သည် Multi-level output cache ကို debing လုပ်ရန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။
output buffer stack ၏ဖွဲ့စည်းပုံကိုနားလည်ခြင်းသည်သင့်အား Page output ကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်သို့ရောက်ရှိစေသည်။
ရှုပ်ထွေးသော applications များသို့မဟုတ်မူဘောင်များတွင်ဤလုပ်ဆောင်မှုကို Debug Mode တွင်အသုံးပြုရန်အကြံပြုသည်။
ဤ output buffering tools များကိုကောင်းစွာအသုံးပြုပါ။ PHP ၏ output လုပ်ငန်းစဉ်ကိုပိုမိုရှင်းလင်းစွာထိန်းချုပ်နိုင်ပြီးစီမံကိန်းအတွက်ပိုမိုတည်ငြိမ်သော output system တစ်ခုတည်ဆောက်နိုင်သည်။