PHP ပရိုဂရမ်တွင် ob_clean တွင် ob_clean () သည်အဓိက output buffer စီမံခန့်ခွဲမှုလုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်း၏ရည်ရွယ်ချက်မှာလက်ရှိ output buffer ကိုရှင်းလင်းရန်ဖြစ်သည်, သို့သော်ကြားခံအကြောင်းအရာများကိုထုတ်လုပ်ရန်မဟုတ်ပါ။ developer များစွာသည် ob_clean ကို အသုံးပြုသောအခါအလုပ်လက်မဲ့များ၏ပြ problem နာကိုကြုံတွေ့ရသည်။ ဤဖြစ်စဉ်သည် developer များအားရှုပ်ထွေးစေနိုင်သည်,
ဒီဆောင်းပါးမှာ Ob_clean () အလုပ်လုပ်တယ်ဆိုတာကို 0 င်ရောက်မယ်,
PHP တွင် output buffering ယန္တရားသည် browser သို့တိုက်ရိုက်ပို့ခြင်းထက် memory buffer ထဲသို့ယာယီသိုလှောင်ထားသည့် output buffering ယန္တရားကိုယာယီသိမ်းဆည်းရန်ခွင့်ပြုသည်။ ဤယန္တရား၏အားသာချက်မှာအချို့သောအခြေအနေများတွင် output ကို browser သို့ပို့သောအခါ output ကို scriptionution သို့မဟုတ် control ပြုလုပ်ခြင်းသည် output ကိုပြုပြင်ရန်သို့မဟုတ်ထိန်းချုပ်နိုင်သည်။
ob_clean () function ကိုလက်ရှိကြားခံပါအကြောင်းအရာများကိုရှင်းလင်းရန်အသုံးပြုသည်။ ဒီ function ကိုခေါ်တဲ့အခါကြားခံရှိအကြောင်းအရာများကိုစွန့်ပစ်လိမ့်မည်,
<span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(); </span><span><span class="hljs-comment">// output ကို buffering စတင်ပါ</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__">ob_clean</span></span><span>(); </span><span><span class="hljs-comment">// ကြားခံရှင်းလင်းပါ</span></span><span>
</span><span><span class="hljs-comment">// အဘယ်အရာကိုမျှဒီမှာ output ကိုဖြစ်ပါတယ်,ဘာဖြစ်လို့လဲဆိုတော့ကြားခံရှင်းလင်း</span></span><span>
</span></span>
OB_CLEAR () သည် လက်ရှိတက်ကြွသော output buffer ကိုသာရှင်းရှင်းလင်းလင်းဖော်ပြလိမ့်မည်ကိုသတိပြုသင့်သည်။ အကယ်. ခေါ်ဆိုမှုကိုခေါ်သည့်အခါ Active Buffer မရှိပါကသို့မဟုတ်အချက်အလက်များမကြားရပါက၎င်းသည်အကျိုးသက်ရောက်မှုမရှိပါ။
ob_clean () ကို စာရွက်စာတမ်းတွင်ရှင်းလင်းစွာသတ်မှတ်သော်လည်း Developmers များသည်အောက်ပါနားလည်မှုလွဲမှားမှုများကိုမကြာခဏတွေ့ကြုံလေ့ရှိပြီး Cache ကိုရှင်းလင်းခြင်းမရှိသေးကြောင်းယုံကြည်ကြသည်
ob_start () ob_clean () ob_clean () ကို ခေါ်ဆိုခြင်း ob_clean () ကို ဦး စွာစတင်ရန်ပထမ ဦး ဆုံးမခေါ်ပါက ob_clean () ကိုခေါ်ခြင်းမရှိပါ။ PHP တွင် OB_CLEAR () output buffer စတင်ပြီးနောက်မှသာကြားခံကိုရှင်းလင်းနိုင်သည်။
<span><span><span class="hljs-comment">// အမှားသရုပ်ပြ:未output ကို buffering စတင်ပါ</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><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">"Hello, world!"</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>
PHP သည်အသိုက် output ကိုကြားခံထောက်ပံ့သည်။ ob_clean () ကိုခေါ်သည့်အခါမှန်ကန်သောကြားခံအသိုက်ဖွဲ့စည်းပုံကိုပြုပြင်မထားပါကရှင်းလင်းပြတ်သားသောကြားခံထက်မှားယွင်းသောကြားခံကိုရှင်းလင်းရန်ဖြစ်စေနိုင်သည်။ PHP ၏ output buffer သည် stack-based ဖြစ်သည်။
<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">"First output"</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">"Second 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() အပြင်ဘက်ကြားခံရှင်းလင်းရန်</span></span><span>
</span></span>
output buffer ကို browser ကို browser သို့ပို့လိုက်လျှင် OB_CLEAR () သည် ပို့သည့်အကြောင်းအရာများကိုရှင်းလင်းနိုင်မည်မဟုတ်ပါ။ PHP သည်အဆင်သင့်ဖြစ်နေချိန်တွင် Browser ကို browser မှအလိုအလျောက်ပေးပို့လိမ့်မည်။ Flush () ဟုခေါ်သောအခါသို့မဟုတ်ဇာတ်ညွှန်းသည်အလိုအလျောက်အဆုံးသတ်သောအခါ၎င်းသည်များသောအားဖြင့်ဖြစ်လေ့ရှိသည်။
<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">"Hello, world!"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">flush</span></span><span>(); </span><span><span class="hljs-comment">// browser မှ output buffer အကြောင်းအရာ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_clean</span></span><span>(); </span><span><span class="hljs-comment">// ဒီအချိန်မှာခေါ် ob_clean() အားမရှိသော,ဘာဖြစ်လို့လဲဆိုတော့အကြောင်းအရာကိုပို့လိုက်ပြီ</span></span><span>
</span></span>
ဖြေရှင်းနည်းမှာ Buffer contents တွေကိုစောစောစီးစီး obfer ကို ob_lec_clean () ကိုတိုက်ရိုက်ထုတ်ပယ်ခြင်းကိုရှောင်ရှားရန်ဖြစ်သည်။
Ob_start () တွင် Buffer အကြောင်းအရာကိုရိုက်ကူးရန် callback function ကိုသင်ပေးလျှင်, obbclean မှရှင်းလင်းသောအကြောင်းအရာသည် callback မှပါ 0 င်သည့်အကြောင်းအရာဖြစ်လိမ့်မည်။ အမှားအယွင်းများသို့မဟုတ်ယုတ္တိရှိသောပြ problems နာများရှိပါက callback function တွင်ရှိနေသောပြ problems နာများရှိပါက၎င်းသည်သင့်အားကြားခံကိုရှင်းလင်းခြင်းမရှိသေးဟုထင်မြင်စေနိုင်သည်။
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">custom_callback</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$buffer</span></span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">strtoupper</span></span><span>(</span><span><span class="hljs-variable">$buffer</span></span><span>); </span><span><span class="hljs-comment">// Buffer အကြောင်းအရာများကိုစာလုံးအကြီးသို့ပြောင်းပါ</span></span><span>
}
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(</span><span><span class="hljs-string">"custom_callback"</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__">ob_clean</span></span><span>(); </span><span><span class="hljs-comment">// ကြားခံရှင်းလင်းပါ,ဒါပေမယ့် callback function ကို၏,အကြောင်းအရာပြုပြင်မွမ်းမံခဲ့ကြပေမည်</span></span><span>
</span></span>
PHP တွင်အခြား PHP တွင်အခြား cache ၏ယန္တရားများ (ဥပမာ - opcache, datacache query cache and cache) များများရှိသည်။ ၎င်းသည် output buffering နှင့်ဘာမှမဆိုင်ပါဘူး။ ထို့ကြောင့် OB_CLEAR () သည် အခြား cache အမျိုးအစားများကိုမထိခိုက်စေဘဲ PHP ၏ output buffer ကိုသာရှင်းလင်းလိမ့်မည်။
အထက်ပါနားလည်မှုလွဲမှားခြင်းများကိုရှောင်ရှားရန် developer များသည်အောက်ပါအကောင်းဆုံးအလေ့အကျင့်များကိုလိုက်နာသင့်သည်။
output buffer ကိုမှန်ကန်စွာစတင်ပါ ။ Ob_clean ကိုမခေါ်မီ objclean () ကို မခေါ်မီ output buffer ကို ဦး စွာ စတင်ရန် သေချာပါစေ။
Buffer Stack ဖွဲ့စည်းပုံကိုနားလည်ပါ ။ အကယ်. သင်သည်အသိုက်ကြားခံများကိုအသုံးပြုပါကထိပ်တန်းကြားခံကိုရှင်းလင်းရန်သင်မှန်ကန်သော ကြားခံ ကိုရှင်းရှင်းလင်းလင်းဖော်ပြပါက,
အကြောင်းအရာများကို ကြိုတင်ပြင်ဆင်ခြင်းမပြုပါ နှင့် ။
CallBack function ကိုစစ်ဆေးပါ ။ အကယ်. သင်သည်စိတ်ကြိုက် output buffer processing function ကိုအသုံးပြုပါက၎င်း၏ယုတ္တိဗေဒမှန်ကန်ကြောင်းသေချာအောင်လုပ်ပါ ။
ဤအသေးစိတ်အချက်အလက်များကိုနားလည်ခြင်းအားဖြင့် PHP output buffering ကိုပိုမိုထိရောက်စွာစီမံခန့်ခွဲနိုင်ပြီး cache ellies all levelation ကိုရှောင်ရှားနိုင်သည်။