<span><span><span class="hljs-meta"><?php</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">"ဒီသင်ခန်းစာကိုဖတ်ပါ!\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်တစ်ခါတစ်ရံတွင် HTML အကြောင်းအရာများစသည်တို့ပါ 0 င ်သော, ဤဆောင်းပါးသည် oblp buffering ကိုအကောင်အထည်ဖော်ရန် OB_START ကို မည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်လေ့လာပါမည်။
ပုံမှန်အားဖြင့် PHP သည် echo ( သို့) ပုံနှိပ်ခြင်း စသည့်ထုတ်လွှင့်ချက်များကိုထုတ်ဖော်ပြောဆိုသည့်အခါ PHP သည် browser ကိုချက်ချင်းပေးပို့လိမ့်မည်။ output buffering သည် PHFFFER သည် PHP ကိုကြားခံရှင်းလင်းခြင်းသို့မဟုတ်ပို့သည်အထိပထမဆုံးဖျော်ဖြေမှုတွင်ပထမဆုံး output တွင်သိုလှောင်ရန်ခွင့်ပြုသည်။ ၎င်းသည် developer များအားခွင့်ပြုသည်။
browser ကိုမပို့မီ output ကိုပြုပြင်မွမ်းမံပါ။
output ကိုအမှာစာကိုထိန်းချုပ်သည်။
အကြောင်းအရာချုံ့ခြင်းသို့မဟုတ် cache ကိုယန္တရားကိုအကောင်အထည်ဖော်ပါ။
"ခေါင်းစီးများကိုပို့ပြီးပြီ" အမှားများကိုရှောင်ကြဉ်ပါ။
PHP တွင် ob_start ကို အသုံးပြု. output buffering ကိုဖွင့်ရန်အလွန်ရိုးရှင်းပါသည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</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">"ဤအပိုင်းကိုပထမဆုံးကြားခံတွင်သိမ်းဆည်းထားသည်,ချက်ချင်း outputting ၏。"</span></span><span>;
</span><span><span class="hljs-comment">// buffered အကြောင်းအရာရယူပါ</span></span><span>
</span><span><span class="hljs-variable">$content</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ob_get_contents</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အဆိုပါကြားခံ၏အကြောင်းအရာဖြစ်ပါတယ်: "</span></span><span> . </span><span><span class="hljs-variable">$content</span></span><span>;
</span><span><span class="hljs-comment">// ရှင်းလင်းစွာနှင့် buffering ပိတ်</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_clean</span></span><span>(); </span><span><span class="hljs-comment">// buffered အကြောင်းအရာ output ကိုမရှိပါ,တိုက်ရိုက်ရှင်းလင်းပါ</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ob_start () : output ကို buffering စတင်ပါ။
ob_get_contents () - လက်ရှိကြားခံပါအကြောင်းအရာများကိုရယူပါ။
ob_clean () - အကြောင်းအရာကို output မလုပ်ဘဲကြားခံကိုရှင်းလင်းပြီး Buffer ကိုပိတ်ပါ။
အကယ်. သင်ရှင်းလင်းမည့်အစား buffered အကြောင်းအရာများကို output လုပ်လိုပါက ob_end_flush () ကို သုံးနိုင်သည်။
ob_start () သည် browser သို့မပို့မီ output ကိုလုပ်ဆောင်ရန်ခွင့်ပြုသည့် callback function ကိုလက်ခံနိုင်သည်။ ဥပမာအားဖြင့် HTML compress:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// callback function compression HTML</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">compress_output</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$buffer</span></span></span><span>) {
</span><span><span class="hljs-variable">$search</span></span><span> = [</span><span><span class="hljs-string">'/>\s+/'</span></span><span>,</span><span><span class="hljs-string">'/\s+</'</span></span><span>,</span><span><span class="hljs-string">'/\s{2,}/'</span></span><span>];
</span><span><span class="hljs-variable">$replace</span></span><span> = [</span><span><span class="hljs-string">'>'</span></span><span>,</span><span><span class="hljs-string">'<'</span></span><span>,</span><span><span class="hljs-string">' '</span></span><span>];
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-variable">$search</span></span><span>, </span><span><span class="hljs-variable">$replace</span></span><span>, </span><span><span class="hljs-variable">$buffer</span></span><span>);
}
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(</span><span><span class="hljs-string">"compress_output"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<html> <body> <h1> ဝမ်းသာစွာနှုတ်ဆက်ခြင်း PHP output ကိုကြားခံ </h1> </body> </html>"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>(); </span><span><span class="hljs-comment">// လုပ်ငန်းများ၌ပါဝင်မှု output ကို</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ဤဥပမာတွင် comback function compress_output သည် HTML တွင်မလိုအပ်သောကွက်လပ်များနှင့်လိုင်းချိုးများကိုဖယ်ရှားပေးသည်။
PHP သည် Multi-level buffering ကိုထောက်ပံ့သည်။ ဆိုလိုသည်မှာအခြားကြားခံတစ်ခုတွင်အခြားကြားခံတစ်ခုကိုဖွင့်နိုင်သည်ဟုဆိုလိုသည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</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">"buffering ၏ပထမ ဦး ဆုံးအလွှာ"</span></span><span>;
</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">"ကြားခံ၏ဒုတိယအလွှာ"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ကြားခံ၏ဒုတိယအလွှာ内容: "</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_flush</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">"buffering ၏ပထမ ဦး ဆုံးအလွှာ内容: "</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_flush</span></span><span>(); </span><span><span class="hljs-comment">// 输出buffering ၏ပထမ ဦး ဆုံးအလွှာ内容</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>Multi-level buffering သည်ကွဲပြားခြားနားသော module များအတွက်ကွဲပြားခြားနားသော cache striesategies ကဲ့သို့သောအလွှာများတွင်ကွဲပြားခြားနားသောရလဒ်များကိုလုပ်ဆောင်ရန်အသုံးပြုနိုင်ပါသည်။
output ကိုပို့ပြီးတဲ့နောက် header အချက်အလက်ကိုမပို့ပါနဲ့ ။
cache control : အကယ်. သင်သည်စာမျက်နှာကို cache သို့မဟုတ် compress လုပ်ရန်လိုအပ်ပါကကြားခံသည်စောလွန်းလိမ့်မည်မဟုတ်ကြောင်းသေချာအောင်လုပ်ပါ။
စွမ်းဆောင်ရည်ထည့်သွင်းစဉ်းစားမှုများ - ဖိုင်မှတ်မှတ်ဆိုင်ရာကြားခံများသည်မှတ်ဥာဏ်ကိုယူမှတ်နိုင်ပြီးသတိနှင့်အသုံးပြုရန်လိုအပ်သည်။
ob_start ()) , PHP developer များသည် output ကိုပေးပို့သည့်အချိန်နှင့်အကြောင်းအရာများကိုမည်သို့ပြုပြင်သည်ကိုအပြည့်အဝထိန်းချုပ်နိုင်သည်။ စာမျက်နှာချုံ့ခြင်း, cache ဆိုင်ရာမူဝါဒများ, သို့မဟုတ် header သတင်းအချက်အလက်အမှားများကိုကာကွယ်ခြင်းဖြစ်စေ, ob_start () နှင့်ဆက်စပ်သောလုပ်ဆောင်ချက်များ ( ob_et_contents), ob_end_flush () , ob_end_clush) , Ob_end_clush ()), Ob_clean () ) ကိုကျွမ်းကျင်စွာပြုလုပ်ပြီးနောက်, သင်၏ PHP output management compilities များတိုးတက်လာလိမ့်မည်။