လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> OB_END_FLUSH ၏အခြေခံအသုံးပြုမှုကိုအသေးစိတ်ရှင်းပြချက် - PHP output buffer ကိုမည်သို့မှန်ကန်စွာအသုံးပြုရမည်နည်း

OB_END_FLUSH ၏အခြေခံအသုံးပြုမှုကိုအသေးစိတ်ရှင်းပြချက် - PHP output buffer ကိုမည်သို့မှန်ကန်စွာအသုံးပြုရမည်နည်း

gitbox 2025-08-11

PHP တွင် output buffering သည် developer များအား control output ၏အချိန်ကိုက်ခြင်းကိုထိန်းချုပ်ရန်ခွင့်ပြုသည့်အစွမ်းထက်သောအင်္ဂါရပ်တစ်ခုဖြစ်သည်။ ob_end_flush () သည် output buffer ကိုပိတ်ပြီး Buffer ၏ contents ကို browser သို့ဖွင့်ရန်အသုံးပြုသော obfer unfultus-function များထဲမှတစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည် OB_END_FLUSH () ၏အခြေခံအသုံးပြုမှုကိုအသေးစိတ်ဖော်ပြရန်နှင့်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် PHP output buffers များကိုမည်သို့မှန်ကန်စွာအသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြထားသည်။

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

PHP Execution စဉ်အတွင်း output content (ဥပမာ HTML, စာသားစသဖြင့်) အများအားဖြင့် browser ကိုတိုက်ရိုက်ပို့သည်။ သို့သော် PHP သည် developer များအနေဖြင့်အချက်အလက်များကိုမှတ်ဉာဏ်ထဲထည့်သွင်းရန်အတွက် developer များအားမှတ်စုများကိုမှတ်မိရန်ခွင့်ပြုသည့် output buffer ယန္တရားကိုထောက်ပံ့ပေးသည်။ ဒီယန္တရားမှာအောက်ပါခံစားချက်ရှိပါတယ်:

  1. Controm output timing : အကြောင်းအရာကို browser သို့ပို့သည့်အခါသင်ထိန်းချုပ်နိုင်သည်။

  2. စွမ်းဆောင်ရည်တိုးတက်စေရန်အတွက် - စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေရန် HTTP တုန့်ပြန်မှုခေါင်းစဉ်များပေးပို့ခြင်းသို့မဟုတ်ထပ်ခါတလဲလဲကျွန်ုပ် / o စစ်ဆင်ရေးများကိုလျှော့ချပါ။

  3. ပြောင်းလွယ်ပြင်လွယ်မှု - အချို့သောအခြေအနေများတွင် developer များအနေဖြင့်အကြောင်းအရာများကို output လုပ်ရန်မရွေးချယ်နိုင်,

ob_end_flush ၏အခန်းကဏ်။

ob_end_flush () function ၏ရည်ရွယ်ချက်မှာ output buffer ကိုပိတ်ပြီး Buffer ရှိအရာအားလုံးကို browser သို့ပို့ရန်ဖြစ်သည်။ ဤလုပ်ဆောင်ချက်သည်များသောအားဖြင့် output buffer ကိုအဆုံးသတ်ရန်အသုံးပြုသည်။

သဒ္ဒါ

 <span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>();
</span></span>
  • Reward Value : အောင်မြင်လျှင် Reward Reward ; Buffer ကိုလက်ရှိဖွင့်လှစ်မထားပါက False သို့ပြန်သွားပါ။

အသုံးပြုမှုဥပမာ

PHP script တွင်အကြောင်းအရာအချို့ကို output buffer ထဲသို့အကြောင်းအရာအချို့ကိုပထမဆုံးအကြိမ်ကြားရိုက်လိုသည်ဆိုပါစို့။ ဤတွင်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။

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

</span><span><span class="hljs-comment">// အကြောင်းအရာအချို့ကို output,သို့သော်၎င်းသည် browser ကိုချက်ချင်းမပို့ပါ</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Hello, this is some buffered content!"</span></span><span>;

</span><span><span class="hljs-comment">// ဇာတ်ညွှန်း၏အဆုံးတွင် output buffer အကြောင်းအရာနှင့်ကြားခံပိတ်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

အထက်ဖော်ပြပါကုဒ်နံပါတ်တွင် ob_start () သည် output buffer ကိုစတင်သည်။ echo output များကိုချက်ချင်း browser သို့ချက်ချင်းမပို့ဘဲမှတ်ဉာဏ်တွင်သိမ်းဆည်းထားသည်။ Buffer ၏ contents ကို ob_end_flush () ဟုခေါ်သောအထိ browser သို့ပို့မည်မဟုတ်ပါ။

ဆက်စပ်သောလုပ်ဆောင်ချက်များ

ob_end_flush () ကို အသုံးပြုသောအခါ output buffer ၏အပြုအမူကိုပိုမိုကောင်းမွန်စွာထိန်းချုပ်ရန်လိုအပ်သည်။

  1. ob_start () - output buffer ကိုဖွင့်ပါ။ ဤလုပ်ဆောင်ချက်သည်မည်သည့် output ကိုမဆိုမပို့မီဟုခေါ်သည်။

     <span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();
    </span></span>
  2. ob_get_contents () - လက်ရှိကြားခံပါအကြောင်းအရာများကိုရယူပါ, သို့သော်၎င်းကိုမရှင်းလင်းပါနှင့်။ ၎င်းကိုနောက်ပိုင်းတွင်အသုံးပြုရန် output ကို debug လုပ်ရန်သို့မဟုတ်ရယူရန်အသုံးပြုနိုင်သည်။

     <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>
  3. ob_clean () : ကြားခံရှင်းလင်းပါ, သို့သော်မည်သည့် browser ကိုမှအကြောင်းအရာမပို့ပါနှင့်။ ဆိုလိုသည်မှာသင်သည် buffered content ကိုဖယ်ရှားနိုင်သည်။

     <span><span><span class="hljs-title function_ invoke__">ob_clean</span></span><span>();
    </span></span>
  4. ob_clean () - buffer ၏ contents ၏ contents မှ browser မှ contents ကိုမပို့ပါနှင့်

     <span><span><span class="hljs-title function_ invoke__">ob_end_clean</span></span><span>();
    </span></span>

output buffers ၏ application ဇာတ်လမ်းတွဲ

  1. Page Compression : စာမျက်နှာအကြောင်းအရာကို compress လုပ်ပြီး output buffer ကို သုံး. စာမျက်နှာ၏အရွယ်အစားနှင့် 0 င်ရန်ထိရောက်စွာလျှော့ချနိုင်သည့် browser သို့ပို့နိုင်သည်။ OB_START () နှင့် ob_end_flush () ကို အသုံးပြု. စာမျက်နှာချုံ့ခြင်းဥပမာတစ်ခုမှာ -

     <span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(</span><span><span class="hljs-string">"ob_gzhandler"</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">"This is a test page."</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>

    အထက်ပါကုဒ်တွင် ob_gzhandler function ကို output content တွင် Gzip Compression ကိုပြုလုပ်ရန်အသုံးပြုသည်။

  2. နှောင့်နှေးနေသည့်ရလဒ် - PHP scripts များကိုကွပ်မျက်ခြင်းတွင်အသုံးပြုသူအားအလယ်အလတ်တန်းစားခြင်းများပြုလုပ်ရန်လိုအပ်သော်လည်း,

  3. Header Information ပ conflicts ိပက်ခများကိုရှောင်ကြဉ်ပါ ။ PHP တွင် HTTP header သတင်းအချက်အလက်များကိုမည်သည့် output မပို့မီ (ထိုကဲ့သို့သော header () function) ကိုသတ်မှတ်ရမည်။ header အချက်အလက်များကိုမပို့မီ output တစ်ခုရှိပါကအမှားတစ်ခုဖြစ်ပေါ်လိမ့်မည်။ ဒီပြ problem နာကိုကြားခံ output လုပ်ခြင်းအားဖြင့်ရှောင်ရှားနိုင်ပါတယ်။ အကြောင်းအရာကိုအရင်ကြားခံနိုင်ပြီး၎င်းကိုသတ်မှတ်ပြီးသည့်နောက် header အချက်အလက်များကိုထုတ်ဖော်ပြောဆိုနိုင်သည်။

     <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">"This is some content"</span></span><span>;
    </span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">"Location: another_page.php"</span></span><span>);  </span><span><span class="hljs-comment">// retirect</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>

မှတ်သားရန်အရာ

  • output buffer များသည်အချို့သောအခြေအနေများတွင်မှတ်ဥာဏ်သုံးစွဲမှုကိုဖြစ်ပေါ်စေနိုင်သည်။ ဤကိစ္စတွင်, အများအားဖြင့်အကြောင်းအရာအလွန်အကျွံကိုရှောင်ရှားရန်ကြိုးစားပါ။

  • OB_END_FLUSH () သို့မဟုတ် ob_clean) မခေါ်ဘဲ PHP သည် script ၏နောက်ဆုံးပေါ် output buffer ကိုအလိုအလျောက်ရှင်းလင်းပြီး content ကို browser ကိုပို့ပေးသည်။

အကျဉ်းချုပ်

ob_end_flush () PHP output buffer operty တွင်အရေးကြီးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည် output buffer ကိုပိတ်လိုက်ရုံသာမကကြားခံအကြောင်းအရာသည် browser ကိုမှန်ကန်စွာထုတ်လုပ်နိုင်ကြောင်းသေချာစေသည်။ ပြင်ဆင်မှုတွင် output buffer ကိုအသုံးပြုရန်အတွက် developer များသည်စာမျက်နှာ၏ output ကိုအချိန်ဇယားဆွဲခြင်း, စွမ်းဆောင်ရည်တိုးတက်စေရန်, အမှားအယွင်းများကိုရှောင်ရှားနိုင်ပြီးစာမျက်နှာများတင်ခြင်းကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။

ဤအခြေခံစစ်ဆင်ရေးများကျွမ်းကျင်မှုသည် PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် output buffer function ကိုပိုမို အသုံးချ. ပရိုဂရမ်ထိန်းချုပ်မှုနှင့်စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်ပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။