ob_clean () ကို အသုံးမပြုခင်, output buffer ကိုဖွင့်ထားကြောင်းသေချာအောင်ပြုလုပ်ရမည်။ PHP သည်ပုံမှန်အားဖြင့် output buffering ကိုထုတ်ဖော်ပြောဆိုခြင်းမပြုပါ။ obput output obput ကိုမပြုလုပ်မီ ob_start () မှ ob_start () မှ oblute buffer ကိုအတိအလင်းဖွင့်ပြသသည်။
<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-title function_ invoke__">ob_end_clean</span></span><span>(); </span><span><span class="hljs-comment">// ရှင်းရှင်းလင်းလင်းနှင့် buffer ကိုပိတ်ပါ</span></span><span>
</span></span>
အကယ်. သင်သည် OB_START () ကို မခေါ်ပါက OB_CL_CRCLEAN () ကို သာသုံးပါ။
<span><span><span class="hljs-built_in">Warning</span></span><span>: ob_end_clean(): failed </span><span><span class="hljs-keyword">to</span></span><span> </span><span><span class="hljs-keyword">delete</span></span><span> buffer. </span><span><span class="hljs-keyword">No</span></span><span> buffer </span><span><span class="hljs-keyword">to</span></span><span> </span><span><span class="hljs-keyword">delete</span></span><span>.
</span></span>
ထို့ကြောင့် developer များ ob_clean () ကို မခေါ်မီ output buffering ကိုစနစ်တကျစတင်ရန်သေချာစေရန်လိုအပ်သည်။
နောက်ထပ်အမှားတစ်ခုမှာ ob_end_clean () obfer ကို oblut တွင်မပါ 0 င်ပါ။ အကယ်. ကြားခံသည်အချည်းနှီးဖြစ်လျှင်လုပ်ငန်းကိုခေါ်ဆိုခြင်းကပရိုဂရမ်အပေါ်မည်သည့်သက်ရောက်မှုရှိလိမ့်မည်မဟုတ်ပါ, သို့သော်တစ်ခါတစ်ရံတွင် debugging အတွက်မလိုအပ်သောပြ troubl နာများကိုဖြစ်ပေါ်စေသည်။ ကြားခံတွင်အကြောင်းအရာရှိကြောင်းသေချာစေရန် Ob_get_contontents () ကို ပထမဆုံးအကြိမ်သုံးနိုင်သည်။
<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">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">ob_get_contents</span></span><span>()) {
</span><span><span class="hljs-title function_ invoke__">ob_end_clean</span></span><span>();
}
</span></span>
၎င်းသည်မလိုအပ်သောသတိပေးချက်များကိုမလိုအပ်သောသတိပေးချက်များကိုရှောင်ရှားနိုင်ပြီး OB_END_CLEAN () ကို ကြားခံတွင်သာကွပ်မျက်ခံရသည်။
PHP တွင် output buffer ကိုအဆင့်ဆင့်ဖွဲ့စည်းပုံတွင်စီမံခန့်ခွဲသည် ။ ob_clean () ကို အသုံးပြုသောအခါ၎င်းသည်ရှင်းလင်းသောကြားခံကိုရှင်းလင်းပြီးပိတ်လိုက်သည်။ အကယ်. သင့်တွင်အဝလွန်သောကြားခံမျိုးစုံရှိပါက OB_END_CLEAN () ကိုခေါ်ဆိုခြင်းသည်အတွင်းအကျဆုံးကြားခံကိုသာထိခိုက်လိမ့်မည်။
ထို့ကြောင့် ob_clean () ကို အသုံးပြုသောအခါမှန်ကန်သောကြားခံသန့်ရှင်းရေးလုပ်နေကြောင်းသေချာပါစေ။ Buffer Stack တစ်ခုလုံးတွင် Buffer အားလုံးနီးပါးကိုသင်ပိတ်လိုပါက OB_END_FLUSH () ကို သုံး နိုင်သည်။
<span><span><span class="hljs-comment">// ကြားခံအလွှာအရေအတွက်ကိုစစ်ဆေးပါ</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">ob_get_level</span></span><span>() > </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-title function_ invoke__">ob_end_clean</span></span><span>(); </span><span><span class="hljs-comment">// လက်ရှိကြားခံသန့်ရှင်းရေး</span></span><span>
}
</span></span>
OB_END_CLEAN () သည်အဓိကအားဖြင့် HTTP တုန့်ပြန်မှုခေါင်းစဉ်သတင်းအချက်အလက်ကိုမလုပ်ဆောင်မီ, တုန့်ပြန်မှုခေါင်းစီးကိုပို့ပြီးနောက်ကြားခံတစ်ခုကိုအသုံးပြုခြင်းသည်မမျှော်လင့်သောအကြောင်းအရာများကိုမမျှော်လင့်သောအကြောင်းအရာများကိုမမှန်မကန်သို့မဟုတ်မပြုပြင်သေးသောတုံ့ပြန်မှုကိုဖြစ်ပေါ်စေသည်။ သို့သော်အချို့သောအခြေအနေများတွင် output buffering သည် (ထိုကဲ့သို့သောသေးငယ်သော scripts) ကဲ့သို့သောရလဒ်များကိုမလိုအပ်ပါ ။
ဥပမာအားဖြင့်, ရိုးရှင်းသော AJAX တောင်းဆိုမှုများသို့မဟုတ် API တုံ့ပြန်မှုများ၌အချို့သောလိုအပ်ချက်မရှိပါကကြားခံစီမံခန့်ခွဲမှုအလွန်အကျွံသုံးစွဲမှုသည်ပရိုဂရမ်ရှုပ်ထွေးမှုကိုတိုးပွားစေနိုင်သည်။ Newbie Developer များသည်အမှန်တကယ်လိုအပ်ချက်များအပေါ် အခြေခံ. ကြားခံကိုအသုံးပြုရန်ဆုံးဖြတ်သင့်သည်။
output buffer သည်အချို့သောမှတ်ဉာဏ်ပမာဏကိုသိမ်းပိုက်လိမ့်မည်။ အကယ်. ပရိုဂရမ်သည်ကြားခံကိုမကြာခဏဖွင့်ပြီးပိတ်ထားပါက၎င်းသည်မှတ်ဥာဏ်စွန့်ပစ်ပစ္စည်းများကိုဖြစ်ပေါ်စေနိုင်သည်။ အထူးသဖြင့်ကြီးမားသော PHP applications များအတွက် PHP applications များအတွက်မကြာခဏကြားခံစစ်ဆင်ရေးများသည်စွမ်းဆောင်ရည်အပေါ်သက်ရောက်မှုရှိသည်။ Ob_clean () ကို အသုံးပြုသောအခါမှတ်ဥာဏ်ယိုစိမ့်မှုများကိုရှောင်ရှားရန်အသုံးမကျသောကြားခံအကြွင်းအကျန်များမရှိကြောင်းသေချာပါစေ။
မှတ်ဉာဏ်ကိုပိုမိုကောင်းမွန်စွာစီမံနိုင်ရန်အတွက် developer များက ob_get_level () ကို သုံးနိုင်သည်။
<span><span><span class="hljs-comment">// သူတို့ကိုအသုံးမပြုခင်အပိုကြားခံများကိုစစ်ဆေးပါ</span></span><span>
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-title function_ invoke__">ob_get_level</span></span><span>() > </span><span><span class="hljs-number">1</span></span><span>) {
</span><span><span class="hljs-title function_ invoke__">ob_end_clean</span></span><span>(); </span><span><span class="hljs-comment">// အားလုံးမလိုချင်တဲ့ကြားခံအားလုံးကိုသန့်ရှင်းရေး</span></span><span>
}
</span></span>
ob_clean () နှင့် OB_END_FLUSH () နှစ် ဦး စလုံးသည်ကြားခံကိုပိတ်ရန်အသုံးပြုသည်။ သို့သော်သူတို့သည်ကွဲပြားစွာပြုမူကြသည်။ ob_clean () buffer ရှိအကြောင်းအရာများကို ob_end_lush () သည် buffer ၏ contents ကို browser သို့မဟုတ် clier သို့ထုတ်ပေးသည်။
အကယ်. ကြားခံပါ 0 င်သည့်အကြောင်းအရာများကိုဖွင့ ်. browser ထဲသို့ပို့လိုပါက OB_END_FLUSH () ကို သုံး နိုင်သည်, သူတို့၏ကွဲပြားခြားနားမှုများကိုနားလည်ခြင်းသည် output buffering ၏မှန်ကန်သောအသုံးပြုမှုအတွက်အလွန်အရေးကြီးသည်။