နေ့စဉ် PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည်စာမျက်နှာရှိအမှိုက်များကိုဖွင့်ထားသောကုဒ်များ, ယခုအချိန်တွင် output cache status ကိုလက်ရှိ script တွင်လျင်မြန်စွာကြည့်ရန်အလွန်အရေးကြီးသည်။
ob_list_handlers () function သည် function သည်အလွန်လက်တွေ့ကျသော gadget တစ်ခုဖြစ်သည်။
ob_list_handlers () PHP တွင် built-in function တစ်ခုဖြစ်သည်။ လက်ရှိ Active output buffer အားလုံး၏ပရိုဆက်ဆာအမည်များ (handler name name name name names) စာရင်းပြုစုထားသည်။
ဤပရိုဆက်ဆာများကို OB_Start () မှကိုယ်တိုင်စတင်နိုင်ပါသည်။ သို့မဟုတ်၎င်းတို့ကို PHP ကိုယ်တိုင်က PHP ကိုယ်တိုင်သို့မဟုတ်အချို့သော extensions များ (ဥပမာ gzip compression) မှအလိုအလျောက်မှတ်ပုံတင်နိုင်သည်။
တရားဝင်စာရွက်စာတမ်းကိုးကားစရာ: https://www.gitbox.net/manual/zh/Function.ob-list-handlers.php
တကယ်တော့ဒါဟာအသုံးပြုရတာအရမ်းရိုးရှင်းပါတယ်, နမူနာကုဒ်ကတော့အောက်ပါအတိုင်းဖြစ်သည် -
<?php
// ရိုးရှင်းသော output ကိုကြားခံတစ်ခုစတင်ပါ
ob_start();
// အခြား output buffer ကို Callback function ကိုစတင်ပါ
ob_start(function ($buffer) {
return strtoupper($buffer);
});
// အသုံးပြု ob_list_handlers လက်ရှိ buffer status ကိုစစ်ဆေးပါ
print_r(ob_list_handlers());
// အားလုံး output ကြားခံအားလုံးပိတ်ပါ
while (ob_get_level() > 0) {
ob_end_flush();
}
?>
output ရလဒ်သည်ဆင်တူသည်။
Array
(
[0] => Closure
[1] => default output handler
)
သင်မြင်သည့်အတိုင်း ပိတ်ပစ်သည်မှာပိတ်ပစ်ခြင်း ဆိုသည်မှာအမည်မသိ function ကို buffer ပါဝင်မှုကိုကိုင်တွယ်နိုင်ပြီး default output handler သည် PHP ၏ default output processor ဖြစ်သည်။
အဆောက်အအုံကြီးများ, အထူးသဖြင့်ရှုပ်ထွေးသော template အင်ဂျင်များ, တတိယပါတီစာကြည့်တိုက်များသို့မဟုတ် Gzip Compression တို့ပါ 0 င်သည့်စီမံကိန်းများကိုဆွေးနွေးခြင်း
အကြောင်းအရာစီမံခန့်ခွဲမှုစနစ် (CMS)
e-commerce ပလက်ဖောင်း
API interface သည် Preprocessing ကိုပြန်ပို့သည်
အောက်ပါကုဒ်ကို script ၏အဓိကနေရာ၌ထည့်ပြီး၎င်းကိုအချိန်မှန်တွင်ကြည့်နိုင်သည်။
<?php
if (!function_exists('debug_ob_handlers')) {
function debug_ob_handlers() {
echo '<pre>';
print_r(ob_list_handlers());
echo '</pre>';
}
}
// တစ်နေရာရာမှာ debugging
debug_ob_handlers();
?>
GZIP သို့မဟုတ် template အင်ဂျင်များ၏ cache ယန္တရားများကြောင့်မမျှော်လင့်သောကြားခံများရှိခြင်းရှိမရှိလျင်မြန်စွာရှာဖွေတွေ့ရှိနိုင်သည်။
ob_list_handlers () တက်ကြွသောပရိုဆက်ဆာများကိုသာစာရင်းပြုစုထားပြီးကြားခံတစ်ခုစီတွင်တိကျသောအကြောင်းအရာများကိုသင့်အားပြောပြလိမ့်မည်မဟုတ်ပါ။
အကယ်. script တွင် output buffering ကိုဖွင့်ထားပါကအချည်းနှီးသောခင်းကျင်းမှုကိုပြန်ပို့သည်။
အချို့သော extension များ (ဥပမာ zlib ကဲ့သို့) ကိုဖွင့်ထားသည့်အခါ ob_gzhandler ကဲ့သို့သောအပိုဆောင်း output ပရိုဆက်ဆာများကိုအလိုအလျောက်ထည့်သွင်းနိုင်ပြီးသင်ပ conflicts ိပက်ခများနှင့် ပတ်သက်. သတိထားရန်လိုအပ်သည်။
ob_list_handlers () သည် output buffering နှင့်ပတ်သက်သောပြ issues နာများကို debugging လုပ်သည့်အခါတွင် positioning speeding ကိုများစွာတိုးတက်စေနိုင်သည့်ပေါ့ပါးသော်လည်းလက်တွေ့ကျသောလုပ်ဆောင်ချက်ဖြစ်သည်။
PHP developer တိုင်းသည်၎င်းကိုကျွမ်းကျင်စေရန်နှင့်လိုအပ်ပါကလိုအပ်သည့်အခါလိုအပ်ပါကလိုအပ်သည့်အခါလိုအပ်ပါကအထူးသဖြင့်ရှုပ်ထွေးသော output လုပ်ဖော်ကိုင်ဖက်များသို့မဟုတ်ခက်ခဲသောအနေအထားပြ problems နာများကိုဖြေရှင်းရန်လိုသည်။