လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ob_list_handlers နှင့် ob_clean နှင့်ကိုက်ညီသောသိကောင်းစရာများ

ob_list_handlers နှင့် ob_clean နှင့်ကိုက်ညီသောသိကောင်းစရာများ

gitbox 2025-05-13

PHP applications များကိုတီထွင်သည့်အခါ HTTP Headers များပေးပို့ခြင်းကဲ့သို့သော output output များစသဖြင့် output output ကိုထိန်းချုပ်ခြင်းနှင့်ပတ်သက်သော output buffering ယန္တရား ကို မကြာခဏအသုံးပြုလေ့ရှိသည်

ဤဆောင်းပါးသည်အရင်းအမြစ်များသို့မဟုတ်မမျှော်လင့်သောရလဒ်များစွန့်ပစ်ပစ္စည်းများကိုရှောင်ရှားရန် PHP output buffers များအားမည်သို့ထိရောက်စွာသန့်ရှင်းအောင်လုပ်ရန် PHP output buffers များအားမည်သို့သန့်ရှင်းရေးလုပ်ရမည်ကိုအသေးစိတ်ရှင်းပြရန်တိကျသောဥပမာများကိုအသုံးပြုလိမ့်မည်။

ob_list_handlers ဆိုတာဘာလဲ။

ob_list_handlers () သည် PHP built-in function တစ်ခုဖြစ်ပြီးလက်ရှိ activated output buffer processor များစာရင်းတွင်ပါ 0 င်သည့် array တစ်ခုရရှိစေသည်။ အကယ်. output buffering ကိုမဖွင့်ပါကအချည်းနှီးသောခင်းကျင်းမှုကိုပြန်ပို့သည်။

ဥပမာ -

 <?php
ob_start(); // အဆိုပါကြားခံဖွင့်
echo "Hello, Gitbox.net!";

$handlers = ob_list_handlers();
print_r($handlers);

// ထုတ်လုပ်ခြင်း
// Array
// (
//     [0] => default output handler
// )
?>

ဤလုပ်ဆောင်မှုမှတစ်ဆင့်လက်ရှိ stack တွင် Buffer ပရိုဆက်ဆာမည်မျှရှိကြောင်းရှင်းရှင်းလင်းလင်းသိရှိနိုင်သည်။

ob_clean ဆိုတာဘာလဲ။

ob_clean () ကို သန့်ရှင်းစင်ကြယ်သော output buffer ကိုသန့်ရှင်းအောင်လုပ်ရန်အသုံးပြုသည်။ သတိပြုရန်မှာ၎င်းသည် browser ကို browser သို့မပို့ပါ။ သို့သော်တိုက်ရိုက်လွှင့်ပစ်ပါ။

ဥပမာ -

 <?php
ob_start();
echo "This will not be sent to Gitbox.net!";
ob_end_clean();
?>

အထက်ဖော်ပြပါဥပမာတွင်အကြောင်းအရာကို သံယောင်လိုက် လျှင်ပင်ဤရလဒ်များကို ob_clean () ကြောင့် client ကို client သို့မပို့ပါ။

ဘာကြောင့်အတူတကွသုံးတာလဲ

ရှုပ်ထွေးသော application များတွင် (ဥပမာ - တတိယပါတီစာကြည့်တိုက်များခေါ်ဆိုခြင်း, template engs, plug-ins စသဖြင့်), output buffering ကိုအလွှာအားဖြင့်အလွှာကိုမကြာခဏဖွင့်လေ့ရှိသည်။ အကယ်. သင် Ob_clean () ကို သာခေါ်ဆိုပါက, သင်ထိပ်တန်းအလွှာကိုသာပိတ်ထားနိုင်သည်။

ဤအခြေအနေသည်ပြ problems နာများစွာကိုဖြစ်ပေါ်စေနိုင်သည်။

  • မမျှော်လင့်သော output ကို

  • Header အမှားကိုပို့ပြီးပါပြီ (ခေါင်းစီးများပို့ပြီးပြီ)

  • မှတ်ဉာဏ်ယိုစိမ့်

ထို့ကြောင့် မှန်ကန်သောနည်းလမ်းမှာ Obfering ၏အလွှာမည်မျှရှိသနည်းကြည့်ရှုရန် Ob_list_Handlers () ကို ပထမဆုံး အသုံးပြုရန်ဖြစ်သည်။

လက်တွေ့ကျကျကုဒ်ဥပမာ - နှိုက်နှိုက်ချွတ်ချွတ်အားလုံးကြားခံသန့်ရှင်းရေး

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

 <?php
// Multi-layer buffering ကို enable လုပ်ရန် Simulate
ob_start();
echo "Layer 1 - Gitbox.net";

ob_start();
echo "Layer 2 - Gitbox.net";

ob_start();
echo "Layer 3 - Gitbox.net";

// လက်ရှိ Buffer Processor ကိုကြည့်ပါ
$handlers = ob_list_handlers();
echo "လက်ရှိကြားခံအလွှာ: " . count($handlers) . "\n";

// အားလုံးကြားခံသန့်ရှင်းရေး
while (ob_get_level() > 0) {
    ob_end_clean();
}

echo "အားလုံးကြားခံတက်သန့်ရှင်းပါပြီ。\n";

// နေဆဲကြားခံနေဆဲရှိကြောင်းအတည်ပြုပါ
if (empty(ob_list_handlers())) {
    echo "ကျန်ရှိနေသေးသော Buffer မရှိပါ - အောင်မြင်စွာသန့်ရှင်းရေး!";
} else {
    echo "နူးညံ့သိမ်မွေ့သောကြားခံရှိသည်,ကျေးဇူးပြု။ ကျသင့်ငွေတွက်ပေးပါ!";
}
?>

ရလဒ်ဥပမာ:

 လက်ရှိကြားခံအလွှာ: 3
အားလုံးကြားခံတက်သန့်ရှင်းပါပြီ。
ကျန်ရှိနေသေးသော Buffer မရှိပါ - အောင်မြင်စွာသန့်ရှင်းရေး!

မှတ်သားရန်အရာ

  • output ကိုပို့ပြီးတဲ့နောက်ကြားခံသန့်ရှင်းရေးကိုမခေါ်ပါနဲ့

  • ob_get_level () သည်လက်ရှိကြားခံအလွှာအရေအတွက်ကိုရှာဖွေရန်အသုံးပြုသည် ။ ၎င်းသည်ကွင်းဆက်နှင့်ပူးပေါင်းဆောင်ရွက်ရန်အလုံခြုံဆုံးဖြစ်သည်။

  • အချို့သောမူဘောင်များသို့မဟုတ်စာကြည့်တိုက်များသည်ပြင်ပမှ output buffering ကိုထိန်းချုပ်နိုင်ပြီး မျက်စိကန်းသောသန့်ရှင်းရေးပြုလုပ်ခြင်းသည်ပုံမှန်ဖြစ်စဉ်များကိုပျက်ပြားစေနိုင်သည်။ သင်အသုံးပြုသောအခါခြုံငုံဗိသုကာကိုသင်နားလည်သင့်သည်။

အကျဉ်းချုပ်

ob_list_handlers () ကို ဖြတ်. buffer status ကိုကြည့်ပါ။ Ob_clean () Loop သန့်ရှင်းရေးလုပ်ခြင်းဖြင့်ပေါင်းစပ်ထားသော output buffer အားလုံးကိုအလွန်သန့်ရှင်းစွာထုတ်ဖော်ပြောဆိုနိုင်သည်။ ဤနည်းသည်သန့်ရှင်းသပ်ရပ်။ သပ်ရပ်သော outputity ပတ် 0 န်းကျင်ကိုသေချာစေရန်အတွက်ခြွင်းချက်ကိုင်တွယ်ခြင်း,

သတိရပါ - output ကိုမြင့်မားသောထိန်းချုပ်မှုကိုထိန်းချုပ်ရန်လိုအပ်သည့် PHP စီမံကိန်းများတွင် (API ပြန်လာခြင်း,

PHP အဆင့်မြင့်မြင့်တက်ထိန်းချုပ်မှုအကြောင်းပိုမိုလေ့လာလိုပါကကျွန်ုပ်တို့၏တရားဝင်ဝက်ဘ်ဆိုက် - https://gitbox.net/php-output- အခွင့်အလမ်းများသို့ဝင်ရောက်ကြည့်ရှုနိုင်သည်။