လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Buffer ကိုသန့်ရှင်းရေးလုပ်ရန် ob_clean function ကိုအသုံးပြုပြီးနောက် output content ကိုပုံမှန်ပြနိုင်အောင်ဘယ်လိုလုပ်ရမလဲ။

Buffer ကိုသန့်ရှင်းရေးလုပ်ရန် ob_clean function ကိုအသုံးပြုပြီးနောက် output content ကိုပုံမှန်ပြနိုင်အောင်ဘယ်လိုလုပ်ရမလဲ။

gitbox 2025-08-29

output buffer ဆိုတာဘာလဲ။

PHP တွင် output buffer သည်ဇာတ်ညွှန်း၏ contents ၏ contents ကိုသိမ်းဆည်းရန်အသုံးပြုသောယာယီသိုလှောင်ရာနေရာဖြစ်သည်။ ပုံမှန်အားဖြင့် PHP သည်စာမျက်နှာအကြောင်းအရာကို display အတွက် browser သို့တိုက်ရိုက်ပေးပို့လိမ့်မည်။ သို့သော် output buffering ကိုဖွင့်ထားသည့်အခါ PHP သည်ကြားခံရှင်းလင်းမှုကိုရှင်းလင်းသောသို့မဟုတ်ဇာတ်ညွှန်းကိုကွပ်မျက်သည်အထိ PHP (ဥပမာ HTML, စာသား, output output ကိုကြားဖူးစေရန် developer များသည်အချိန်သည်အချိန်နှင့် output ပါဝင်မှုကိုပင်ပြုပြင်ရန်ပင်ထိန်းချုပ်နိုင်သည်။

ob_clean function ကို၏အခန်းကဏ်။

ob_clean function ကို PHP ၏ output buffer ကိုရှင်းလင်းရန်အသုံးပြုသည်။ Ob_clean ကို သင်ခေါ်ဆိုသောအခါ PHP သည်ကြားခံတွင်သိမ်းဆည်းထားသည့်အရာအားလုံးကိုရှင်းလင်းသည်။ သို့သော်ကြားခံကိုမပိတ်ပါ။ ကြားခံရှင်းလင်းခြင်း၏ရည်ရွယ်ချက်မှာများသောအားဖြင့်နောင်တွင်မျှော်လင့်ထားသည့်အတိုင်းနောက်ဆက်တွဲ output ကို browser သို့ပေးပို့နိုင်သည်။

ဘာကြောင့်ပြ problems နာတွေရှိတာလဲ

ob_clean output buffer ကိုရှင်းလင်းနိုင်သော်လည်းကြားခံအခြေအနေကိုစနစ်တကျစီမံခြင်းမပြုပါကသန့်ရှင်းရေးပြီးနောက်အောက်ပါပြ problems နာများဖြစ်ပေါ်နိုင်သည်။

  1. output ကို browser သို့မပို့ပါ ။ Browser ကိုမ သုတ်သင် ပါကသို့မဟုတ် browser ကိုမှန်ကန်စွာ output မလုပ်ပါကစာမျက်နှာကိုကွက်လပ်ဖြစ်စေနိုင်သည်သို့မဟုတ်ဘာမျှမပြသနိုင်ပါ။

  2. နောက်ဆက်တွဲ output ကိုပိတ်ထားသည် - ကြားခံကိုရှင်းလင်းခြင်းသို့မဟုတ်ကြားခံကိုပြန်လည်ဖွင့်ထားပြီးသို့မဟုတ်ကြားခံအခြေအနေကိုမှန်ကန်စွာပြုပြင်မွမ်းမံခြင်းမပြုပါကနောက်ဆက်တွဲရလဒ်များကို "စွန့်ပစ်ခြင်း" ဖြစ်နိုင်သည်သို့မဟုတ်မျှော်လင့်ထားသည့်အတိုင်းပေးပို့ရန်ပျက်ကွက်နိုင်သည်

  3. Browser သည်မပြည့်စုံသောတုံ့ပြန်မှုများကိုလက်ခံတွေ့ဆုံ

output ကိုပုံမှန်အားဖြင့်ပြသနိုင်အောင်ဘယ်လိုလုပ်ရမလဲ။

Buffer ကိုသန့်ရှင်းပြီးပြီးနောက်နောက်ဆက်တွဲ output ကိုပုံမှန်ပြသနိုင်စေရန်အောက်ပါအစီအမံများကိုပြုလုပ်ရန်လိုအပ်သည်။

1 ။ Buffer ကိုရှင်းလင်းပြီးအကြောင်းအရာကိုလန်းဆန်းစေပါ

buffer ကိုရှင်းလင်းရန် OBCCLEAN ကိုခေါ်ရန် OBCLEAN ကို ခေါ်ပြီးနောက် ob_flush ကို brofer ရှိ browser ကို browser သို့ပေးပို့ရန်အတွက် ob_flush ကို ခေါ်ရန်လိုအပ်သည်။ ဒီအကြောင်းအရာကိုစနစ်တကျပြသနိုင်အောင်သေချာစေရန်အဓိကခြေလှမ်းတစ်ခုဖြစ်သည်။

 <span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(); </span><span><span class="hljs-comment">// output buffer ကိုဖွင့်ပါ</span></span><span>

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Hello, this is some content."</span></span><span>;

</span><span><span class="hljs-title function_ invoke__">ob_clean</span></span><span>(); </span><span><span class="hljs-comment">// ကြားခံရှင်းလင်းပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_flush</span></span><span>(); </span><span><span class="hljs-comment">// ကြားခံကို refresh,အကြောင်းအရာကို browser သို့ပို့ပါ</span></span><span>

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"This is the new output after cleaning the buffer."</span></span><span>;
</span></span>

2 ။ Buffer ပိတ်ခြင်းကိုပိတ်ပါ

အကယ်. သင်သည်ကြားခံကိုဆက်လက်အလုပ်လုပ်ရန်နှင့်နောက်ဆက်တွဲအကြောင်းအရာများသည်ချောချောမွေ့မွေ့သွားစေလိုပါက OB_CLEAN သို့မဟုတ် OB_ENG_FLUSH ကို မခေါ်ပါနှင့်။

 <span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(); </span><span><span class="hljs-comment">// output buffer ကိုဖွင့်ပါ</span></span><span>

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"This is the first output."</span></span><span>;

</span><span><span class="hljs-title function_ invoke__">ob_clean</span></span><span>(); </span><span><span class="hljs-comment">// ကြားခံရှင်းလင်းပါ</span></span><span>

</span><span><span class="hljs-comment">// သင်ခေါ်ပါob_end_clean()သို့မဟုတ်ob_end_flush(),အဆိုပါကြားခံပိတ်ပါလိမ့်မည်,နောက်ဆက်တွဲအကြောင်းအရာ output ကိုမဖြစ်နိုင်ပါ。</span></span><span>
</span><span><span class="hljs-comment">// ဒါကြောင့်ဒီလုပ်ဆောင်ချက်များကိုမခေါ်ပါနဲ့,ကြားခံဆက်ဖွင့်ထားကြောင်းသေချာအောင်လုပ်ပါ。</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"This is the second output after cleaning."</span></span><span>;
</span></span>

3 ။ ယခင်အကြောင်းအရာဝင်ရောက်စွက်ဖက်မှုမရှိကြောင်းသေချာပါစေ

အကယ်. ယခင် output ကို browser သို့ပို့လိုက်လျှင် ( OB_END_END_FLUSH () မှတစ်ဆင့်) ကိုရှင်းလင်းခြင်း၏လုပ်ဆောင်မှုသည်မမှန်ကန်ပါ။ ဒါကြောင့်ကြားခံကိုရှင်းလင်းခြင်းမပြုမီဘာမှမရှိဘူးဆိုတာသေချာအောင်လုပ်ပါ။

 <span><span><span class="hljs-comment">// အဆိုပါ buffer enable မထားဘူးဆိုရင်,အကြောင်းအရာ output ကိုတိုက်ရိုက် browser ကိုချက်ချင်းပို့လိမ့်မည်。</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(); </span><span><span class="hljs-comment">// အဆိုပါကြားခံဖွင့်</span></span><span>

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Initial content."</span></span><span>;

</span><span><span class="hljs-title function_ invoke__">ob_clean</span></span><span>(); </span><span><span class="hljs-comment">// ကြားခံရှင်းလင်းပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_flush</span></span><span>(); </span><span><span class="hljs-comment">// ကြားခံကို refresh</span></span><span>

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Content after cleaning the buffer."</span></span><span>; </span><span><span class="hljs-comment">// ပုံမှန် output ကို</span></span><span>
</span></span>

4 ။ output_buffering setting ကိုစစ်ဆေးပါ

PHP ၏ ထုတ်ယူခြင်း ၏ပြင်ဆင်မှု Configuration item သည် PHP သည် output ofpering ကိုဖွင့်နိုင်သည်ကိုဆုံးဖြတ်သည်။ PHPP.ini ဖိုင်တွင် output buffering ကိုပိတ်ထားပါက OB_CLEAN သည် အလုပ်မလုပ်ပါ။ ဤကိစ္စတွင်, PHP ၏ ရလဒ် adutputing configuration item ကို "on" သို့မဟုတ်သင့်လျော်သောကြားခံအရွယ်အစားဖြစ်ကြောင်းသေချာအောင်လုပ်ပါ။

 <span><span><span class="hljs-attr">output_buffering</span></span><span> = </span><span><span class="hljs-literal">On</span></span><span>
</span></span>

အကျဉ်းချုပ်

ob_clean ကို အသုံးပြု. output buffer ကိုသန့်ရှင်းရေးလုပ်ရန်, output content ကိုပုံမှန်ပြသနိုင်အောင်သေချာအောင်လုပ်ပါ။ သော့ချက်မှာကြားခံအခြေအနေကိုစီမံရန်ဖြစ်သည်။ ob_flush ကို ခေါ်ခြင်းကကြားခံကိုရှင်းလင်းပြီးနောက်အကြောင်းအရာသည် brofreser ကိုမှန်ကန်စွာပေးပို့ပြီးမလိုအပ်သော buffer shutdown operations များကိုရှင်းလင်းစွာပေးပို့နိုင်သည်။ ထို့အပြင်မည်သည့်အကြောင်းအရာကမျှမရှင်းလင်းသည့်အရာများကိုရှင်းလင်းခြင်းမပြုမီ, output buffer ကိုအသုံးပြုသောအခါ PHP script ၏ outporm ကိုပုံမှန်အားဖြင့်ပုံမှန်အားဖြင့်မျှော်လင့်ထားကြောင်းသေချာစေရန်ဤအဆင့်များကိုလိုက်နာပါ။