လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ob_clean သို့မကြာခဏခေါ်ဆိုမှုများကိုရှောင်ရှားရန်မည်သို့ရှောင်ရှားနိုင်မည်နည်း။ အကောင်းဆုံးနည်းလမ်းများကဘာတွေလဲ။

ob_clean သို့မကြာခဏခေါ်ဆိုမှုများကိုရှောင်ရှားရန်မည်သို့ရှောင်ရှားနိုင်မည်နည်း။ အကောင်းဆုံးနည်းလမ်းများကဘာတွေလဲ။

M66 2025-06-23

1 ။ ob_clean သို့ မကြာခဏခေါ်ဆိုမှုသည်အဘယ်ကြောင့်စွမ်းဆောင်ရည်ကိုသက်ရောက်သနည်း။

ob_clean () လုပ်ဆောင်ချက်သည် PHP ၏ output buffer ကိုရှင်းလင်းသည်။ ဤစစ်ဆင်ရေးသည်အထူးသဖြင့်ကြားခံရှိအချက်အလက်ပမာဏကြီးမားသည့်အခါတွင်ဤစစ်ဆင်ရေးသည်အချက်အလက်များစွာနှင့်မှတ်ဉာဏ်တွင်ရှင်းလင်းခြင်းနှင့်မှတ်ဉာဏ်တွင်ရှင်းလင်းခြင်းပြုလုပ်သည်။ Ob_clean () ကိုခေါ်သည့်အခါ PHP သည် Buffer ရှိ contents များကိုဖယ်ထုတ်ပြီးနောက်ဆက်တွဲ output လုပ်ငန်းများအတွက်ကြားခံအသစ်ပြင်ဆင်ရန်လိုအပ်သည်။

  • Memory စားသုံးမှု - ကြားခံရှင်းလင်းလိုက်ရင် PHP သည်အချက်အလက်အသစ်များကိုသိမ်းဆည်းရန် Memory space ကိုခွဲဝေချထားပေးသည်။ အကယ်. မှတ်ဉာဏ်ကိုမကြာခဏရှင်းရှင်းလင်းလင်းဖော်ပြပြီးပြန်လည်ခွဲဝေယူပါကမလိုအပ်သောမှတ်ဉာဏ် overhead ဖြစ်ပေါ်လိမ့်မည်။

  • CPU Occupancy - ကြားခံရှင်းလင်းသည့်အခါတိုင်း PHP သည် CPU တွင် 0 န်ထုပ်ဝန်ပိုးကိုတိုးမြှင့်စေမည့်ကြားခံပါ 0 င်သည့်အကြောင်းအရာများကိုအထူးသဖြင့် 0 န်ထုပ် 0 င်မှုတိုးမြှင့်ရေးကိုတိုးမြှင့်ပေးရမည်။

ဤမကြာခဏမှတ်ဉာဏ်နှင့် CPU အသုံးပြုမှုသည်အထူးသဖြင့် 0 က်ဘ်ဆိုက်များသို့မဟုတ်အသုံးချပရိုဂရမ်များတွင်ပရိုဂရမ်ကိုနှေးကွေးစေလိမ့်မည်။


2 ။ ob_clean ၏အသုံးပြုမှုကိုပိုမိုကောင်းမွန်အောင်ဘယ်လိုလုပ်မလဲ။

ob_clean သို့ မကြာခဏခေါ်ဆိုမှုများကြောင့်ဖြစ်ပေါ်လာသောစွမ်းဆောင်ရည်ပြ problems နာများကိုရှောင်ရှားနိုင်ရန်အတွက်အောက်ပါရှုထောင့်များမှကျွန်ုပ်တို့ပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။

2.1 ။ ပြင်ဆင်မှု output ကိုကြားဖူးမှု configure

PHP သည်ပုံမှန်အားဖြင့် output ကိုကြားခံဖွင့်ပေးသည်။ ဆိုလိုသည်မှာ output ကို browser သို့ချက်ချင်းပို့ခြင်းမဟုတ်သော်လည်းမှတ်ဉာဏ်တွင်သိုလှောင်ထားသည်။ script ကိုကွပ်မျက်ခံရသောအခါ PHP သည်တစ်ချိန်တည်းတွင် PHP မှအကြောင်းအရာများကို client သို့ပေးပို့လိမ့်မည်။

Output_Buffering Parametering ကိုပြုပြင်ခြင်းအားဖြင့် output buffer ၏အရွယ်အစားကိုကျွန်ုပ်တို့ထိန်းချုပ်နိုင်သည်။ သင်၏လျှောက်လွှာသည်ကြားခံကိုမကြာခဏသန့်ရှင်းရေးလုပ်ရန်မလိုအပ်ပါက Buffer Size ကိုတိုးမြှင့်ခြင်းအားဖြင့် ob_clean သို့ခေါ်ဆိုမှုအရေအတွက်ကိုလျှော့ချနိုင်သည်။ ဥပမာအားဖြင့်, ကြားခံအရွယ်အစားတိုးမြှင့်ခြင်းကကြားခံကိုမကြာခဏသန့်ရှင်းရေးလုပ်ရန်မလိုအပ်ဘဲ script တွင်အချက်အလက်များကိုလုပ်ဆောင်ရန်အချိန်ပိုပေးနိုင်သည်။

 <span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'output_buffering'</span></span><span>, </span><span><span class="hljs-number">4096</span></span><span>); </span><span><span class="hljs-comment">// ရန်ကြားခံထားပါ4KB</span></span><span>
</span></span>

2.2 ။ Buffer output ကိုအချိန်ကိုထိန်းချုပ်ပါ

ဖြစ်နိုင်ခြေအတော်များများတွင်ကျွန်ုပ်တို့သည်မကြာခဏကြားခံရှင်းလင်းရေးကိုရှောင်ရှားရန် output ၏အချိန်ကိုက်ကိုထိန်းချုပ်ရန်လိုအပ်သည်။ ob_clean ကိုအသုံးပြုခြင်းကိုစာမျက်နှာသို့အချိန်ကုန်ရန်နှောင့်နှေးခြင်းဖြင့်လျှော့ချနိုင်သည်။

ဥပမာအားဖြင့်, စာမျက်နှာတစ်ခုလုံးကိုဖြည့်စွက်ပြီးနောက်, အချက်အလက်များပြုလုပ်သောအခါတိုင်းကြားခံရှင်းလင်းမှုကိုရှောင်ရှားရန်ကြားခံအကြောင်းအရာသည်ကြားခံကိုရှောင်ရှားရန်ယူနီဖောင်းပါတ်သက်ရှိဖြစ်နိုင်သည်။ ဤနည်းလမ်းသည်စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။

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

</span><span><span class="hljs-comment">// ဒေတာအပြောင်းအလဲနဲ့လုပ်ဆောင်ပါ,မခေါ် ob_clean()</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"This is a test."</span></span><span>;

</span><span><span class="hljs-comment">// နောက်ဆုံးအနေနဲ့စည်းလုံးပတ်သက်တဲ့ output ကို</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>();
</span></span>

2.3 ။ ob_clean () လိုအပ်မှသာခေါ်ဆိုပါ

အချို့သောသီးခြားစီးပွားရေးယုတ္တိဗေဒတွင် output buffer ကိုရှင်းလင်းရန်အမှန်ပင်လိုအပ်သည်။ သို့သော် ob_clean () ကို မသင့်လျော်သောပရိုဂရမ်များကြောင့်သာမကြာခဏခေါ်လျှင်သို့မဟုတ်မှားယွင်းသောယုတ္တိဗေဒကြောင့် output ကိုအမှာစာကိုရှောင်ရှားနိုင်သည်။ ဥပမာအားဖြင့်မလိုအပ်သောသန့်ရှင်းရေးလုပ်ငန်းများကိုရှောင်ရှားရန်လျှောက်လွှာအဆင့်တွင်ကျိုးကြောင်းဆီလျော်သောအခြေအနေများပြုလုပ်ပါ။

 <span><span><span class="hljs-keyword">if</span></span><span> (condition_to_clean_buffer) {
    </span><span><span class="hljs-title function_ invoke__">ob_clean</span></span><span>();
}
</span></span>

2.4 ။ ob_clean အစား flush () ကို သုံးပါ။

အချို့ဖြစ်ရပ်များတွင်သင်သည်ကြားခံပါ 0 င်မှုများကို browser မှချက်ချင်းပေးပို့လိုပါကချက်ချင်းမ ရှင်းလင်း ပါက, Flush () သည် Buffer ရှိအကြောင်းအရာများကို 0 န်ဆောင်မှုခံယူသူအားပေးပို့သည်, ကြားခံပါအကြောင်းအရာများကိုမရှင်းလင်းပါ။

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

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Hello, world!"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">flush</span></span><span>(); </span><span><span class="hljs-comment">// client ကိုမှအကြောင်းအရာပေးပို့ပါ,ဒါပေမယ့်ကြားခံရှင်းမရှင်းလင်းပါ</span></span><span>
</span></span>

2.5 ။ အဆင့်နိမ့် output output ကိုကြားခံစစ်ဆင်ရေးကိုသုံးပါ

Buffer Content ကိုရှင်းလင်းပြတ်သားစေရန် Ob_clean () ကိုရှင်းလင်းရန် Ob_get_clean () ကိုရှင်းရှင်းလင်းလင်းဖွင့်ရန်သို့မဟုတ် ob_get_clean () ကိုရှင်းလင်းရန် OB_Get_clean () ကို ပိတ်ခြင်းကဲ့သို့ PHP သည် ob_clean () ကို ob_clean ထက် ob_clean ထက် ob_clean ထက် ob_clean () ကိုထောက်ပံ့ပေးသည်။ ဤနည်းလမ်းများသည်အချို့သော သီးခြား ဖြစ်ရပ်များတွင် output buffering ကိုပိုမိုတိကျစွာထိန်းချုပ်နိုင်သည်,

 <span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Some content"</span></span><span>;
</span><span><span class="hljs-variable">$content</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ob_get_clean</span></span><span>(); </span><span><span class="hljs-comment">// Buffer အကြောင်းအရာကိုရယူပါ</span></span><span>
</span><span><span class="hljs-comment">// နောက်ထပ်စစ်ဆင်ရေး $content,Buffer ကိုတိုက်ရိုက်ရှင်းလင်းခြင်းမပြုပါနှင့်</span></span><span>
</span></span>