PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်တခါတရံတွင်ကျွန်ုပ်တို့သည် output buffer (output buffering) ကိုလည်ပတ်ရန်သို့မဟုတ် debug လုပ်ရန်လိုအပ်သည်။ ob_list_handlers () သည်လက်ရှိလှုပ်ရှားမှု output buffer handlers များကိုကြည့်ရှုရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ သို့သော် developer များစွာသည်ဤလုပ်ဆောင်မှုကိုအသုံးပြုသောအခါအချည်းနှီးသောခင်းကျင်းမှုကိုပြန်လည်ရရှိသည့်အခြေအနေကိုကြုံတွေ့ရလိမ့်မည်။ ဤဆောင်းပါးသည်ဤပြ problem နာကိုနက်နက်နဲနဲခွဲခြမ်းစိတ်ဖြာပြီးထိရောက်သောဖြေရှင်းနည်းများပေးလိမ့်မည်။
ob_list_handlers () သည် PHP မှပေးသော function တစ်ခုဖြစ်ပြီးလက်ရှိတက်ကြွသော output buffer processor ကိုစာရင်းပြုစုရန်စီစဉ်ထားသည်။ ဘုံပရိုဆက်ဆာများသည် ပုံမှန် output handler , gzip handler , mb_output_handler စသည်တို့ပါဝင်သည်။
Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
array ob_list_handlers ( void )
ပြန်လာတန်ဖိုး - တက်ကြွသော output output processor အမည်များအားလုံးပါ 0 င်သည့် array ။
Ob_list_handlers () ကို အချည်းနှီးသောခင်းကျင်းမှုကိုပြန်ပေးရန်ဘုံအကြောင်းပြချက်များစွာရှိသည်။
ob_list_handlers မ ခေါ်မီ obsist_handlers ကိုမခေါ်မီ obsist buffering ကို enable လုပ်ထားပါကသဘာဝကျကျပရိုဆက်ဆာမရရှိနိုင်ပါ။
ဥပမာ -
print_r(ob_list_handlers()); // ထုတ်လုပ်ခြင်း:Array ( )
ဤအချိန်တွင် OB_Start () သို့မဟုတ်အခြား function မရှိပါ။ ကြားခံသည်ဗလာဖြစ်သည်။
ob_clean ()) , OB_ENT_END_FLUSH () နှင့်အခြားလုပ်ဆောင်ချက်များကို ob_list_handlers () ကြားခံရှင်းရှင်းလင်းလင်းဖွင့်ရန်ခေါ်ယူပါက,
တခါတရံ PHP ၏ output buffering ယန္တရားကိုအလိုအလျောက်ဖွင့ ် ထားနိုင်သည် (ဥပမာ zlib ကဲ့သို့သောအခြား extections များမှတခြားယုတ္တိဗေဒများဖြင့်ပြုလုပ်နိုင်သည်။
ob_start () ကို ob_list_handlers () ကိုမခေါ်မီဟုခေါ်သည် ။
ob_start();
print_r(ob_list_handlers());
ob_end_clean();
output ကိုဖြစ်လိမ့်မည်:
Array
(
[0] => default output handler
)
function custom_handler($buffer) {
return strtoupper($buffer);
}
ob_start("custom_handler");
print_r(ob_list_handlers());
ob_end_clean();
ထုတ်လုပ်မှု -
Array
(
[0] => custom_handler
)
stack order ကိုကြည့်ရှုရန်ပရိုဆက်ဆာမျိုးစုံထည့်နိုင်သည်။
Php.ini တွင်သက်ဆိုင်ရာကြားခံယန္တရားမသန်စွမ်းမှုမရှိကြောင်းသေချာပါစေ။ ဥပမာအားဖြင့်, စစ်ဆေးပါ။
output_buffering = Off
zlib.output_compression = Off
Enable လုပ်ရန်
output_buffering = On
configuration ကိုပြုပြင်ပြီးနောက်ဝက်ဘ်ဆာဗာကိုပြန်လည်စတင်ပါ။
ရှုပ်ထွေးသော output logic ကို debing လုပ်သည့်အခါ ob_list_handlers () ပြ the နာကိုရှာဖွေရန် Ob_list_handlers () ကိုပေါင်းစပ်နိုင်သည်။
ဥပမာအားဖြင့်:
ob_start("ob_gzhandler");
ob_start();
echo "GitBox.net နမူနာဝက်ဘ်ဆိုက်ပါ。";
print_r(ob_list_handlers());
ob_end_flush();
ob_end_flush();
output ကိုဖြစ်လိမ့်မည်:
Array
(
[0] => default output handler
[1] => ob_gzhandler
)
၎င်းသည်ကျွန်ုပ်တို့အားပြုပြင်ခြင်းနှင့် Debugal အမှားများကိုလေ့လာခြင်းအမိန့်ကိုနားလည်စေသည်။
ob_list_handlers () အချည်းနှီးသောခင်းကျင်းမှုကိုအမြဲတမ်းပြန်ဖွင့်သည်မဟုတ်, နားလည်မှုလွဲမှားခြင်းကိုရှောင်ရှားရန်, function ကိုအသုံးမပြုခင် output buffering ကို enable လုပ်ထားပါသေချာအောင်လုပ်ပါ။ ဤပြ problem နာကို ob_start () သို့မဟုတ် PHP ၏ configuration options များကိုကြည့်ခြင်းဖြင့်ထိရောက်စွာဖြေရှင်းနိုင်သည်။ အမှန်တကယ်စီမံကိန်းများအနေဖြင့် output output buffering ၏လုပ်ဆောင်မှုဆိုင်ရာလူမှုရေးနိယာမကိုနားလည်ခြင်းသည်သင့်အားစာမျက်နှာအကြောင်းအရာများ၏ output output နှင့် processing ကိုပိုမိုပြောင်းလဲစေနိုင်သည်။
output buffering အကြောင်းပိုမိုသိရှိလိုပါက https://gitbox.net/docs/php-output- ခ
သင်၏စမ်းသပ်ခြင်းအတွက်ပြီးပြည့်စုံသော debug script ဖိုင်ကိုကျွန်ုပ်ပူးတွဲလိုပါသလား။