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

ob_flush နှင့် PHP တွင် flush အကြားခြားနားချက်ကဘာလဲ။ အသုံးပြုမှုနှိုင်းယှဉ်ခွဲခြမ်းစိတ်ဖြာ

gitbox 2025-06-24

1 ။ အခြေခံသဘောတရားများ

PHP တွင် output buffering ယန္တရားကို script မှထုတ်လုပ်သောထုတ်လုပ်မှုကိုသိမ်းဆည်းရန်အသုံးပြုသည်။ ဤသို့ပြုလုပ်ခြင်းအတွက်အဓိကအကျိုးကျေးဇူးနှစ်ခုရှိသည်။

  1. ဤအကြောင်းအရာသည် output သည် output သည် output ကိုပြုလုပ်သောအခါသင်ထိန်းချုပ်နိုင်သည်။

  2. အချို့ဖြစ်ရပ်များတွင်စွမ်းဆောင်ရည်ကိုတိုးတက်အောင်လုပ်နိုင်ပြီး browser နှင့်အပြန်အလှန်ဆက်သွယ်မှုအရေအတွက်ကိုလျှော့ချနိုင်သည်။

ob_flush () :

ob_flush () သည် output buffer ၏ contents ၏ contents ၏ contents ကို browser သို့ပို့ဆောင်ပေးသော output buffer function ကို Browser မှမရှင်းလင်းပါ။ ထို့ကြောင့် ob_flush ကို ခေါ်ဆိုပြီးနောက်, ကြားခံရှိအကြောင်းအရာများကိုဆက်လက်ထိန်းသိမ်းထားဆဲဖြစ်ပြီးဆက်လက်အသုံးပြုနိုင်သည်။

flush () :

Flush () သည် system output buffer ကို Refresh လုပ်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ အရာအားလုံးကို browser ကို browser ကိုပို့ဖို့ကြိုးစားပေမယ့် ob_flush () နဲ့မတူဘဲ PHP ရဲ့ output buffer ကိုမပါ 0 င်ပါဘူး။ Flush () ကိုခေါ်သည့်အခါ PHP သည်ဤအချက်အလက်များကိုကြည့်ရှုရန်စောင့်ဆိုင်းနေသည့် PHP သည် Browser သို့ browser သို့တွန်းအားပေးလိမ့်မည်။


2 ။ ob_flush () နှင့် flush အကြားခြားနားချက်

ob_flush () နှင့် flush () () flush () သည် browser ကို output ကိုပေးပို့နိုင်သော်လည်း၎င်းတို့၏အသုံးပြုမှုအခြေအနေများနှင့်အကျိုးသက်ရောက်မှုများသည်ကွဲပြားခြားနားသည်။

သီးခြားထင်ရှားသော ob_flush () flush ()
အရေးယူဆောင်ရွက်မှုအရာဝတ်ထု PHP output ကိုကြားခံ စနစ် output ကိုကြားခံ
ကြားခံရှင်းလင်းဖို့ရှိမရှိ ကြားခံကိုမရှင်းလင်းပါ ကြားခံရှင်းလင်းပါ
Enable လုပ်ဖို့ output ကိုကြားခံအပေါ်အားကိုးဖို့ရှိမရှိ output buffering ယန္တရားပေါ်တွင်မူတည်သည် output ကို buffering ယန္တရားအပေါ်မှီခိုအားမရှိပါ
ဘုံအခြေအနေများ ob_start နှင့်အသုံးပြုသော output ကိုကြားခံစစ်ဆင်ရေး () ရှည်လျားသောပြေး scripts များအတွက်မကြာခဏအသုံးပြုသော browser မှ refresh နှင့် output ကို force
  • ob_flush () PHP output buffer ကိုဖွင့်သောအခါ browser ရှိအကြောင်းအရာများကို browser မှ browser ရှိအကြောင်းအရာများကို browser သို့ပို့ရန်အသုံးပြုသည်။

  • Flush () သည် System-Level Output Refresh function ကို brofreser ကို browser တစ်ခုသို့ပို့ပေးသည်။ PHP output buffering ယန္တရားအပေါ် မူတည်. မမူတည်သည်။


3 ။ ဥပမာများနှင့် applications များ

1 ။ ob_flush () ဥပမာ

 <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-keyword">echo</span></span><span> </span><span><span class="hljs-string">"တ ဦး တည်းဒေတာ output ကို,ပေးပို့ဖို့စောင့်ပါ..."</span></span><span>;

</span><span><span class="hljs-comment">// အကြောင်းအရာကို browser သို့ပို့ပါ,ဒါပေမယ့်ကြားခံနေဆဲဖြစ်သည်</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_flush</span></span><span>();
</span><span><span class="hljs-title function_ invoke__">flush</span></span><span>();

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဒေတာ output ၏ဒုတိယအပိုင်း,အသုံးပြုသူကိုချက်ချင်းပြပါ。"</span></span><span>;

</span><span><span class="hljs-comment">// ဇာတ်ညွှန်းကိုအဆုံးသတ်ပါ</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 () ob_start () output buffering ယန္တရားကိုဖွင့်ပေးသည်။ ob_flush () buffer ရှိဒေတာများကို buffer မှ browser သို့ output လုပ်လိမ့်မည်။

2 ။ flush () ဥပမာ

 <span><span><span class="hljs-meta">&lt;?php</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-comment">// force output ကြားခံကို refresh</span></span><span>
</span><span><span class="hljs-title function_ invoke__">flush</span></span><span>();

</span><span><span class="hljs-comment">// ရှည်လျားသောပြေးအလုပ်များပိုမိုဆင်တူသည်</span></span><span>
</span><span><span class="hljs-title function_ invoke__">sleep</span></span><span>(</span><span><span class="hljs-number">2</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Task ပြီးစီးခြင်း。"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

ဤဥပမာတွင် Flush () သည် output brofrer ကို "Starting data data ... " ၏အကြောင်းအရာကိုချက်ချင်းလက်ခံရန် output brofer ကိုတွန်းအားပေးသည်။ 2 စက္ကန့်အကြာတွင်ပြသလိမ့်မည်။ ဤနည်းလမ်းသည်အထူးသဖြင့်အသုံးပြုသူများသည်အချိန်နှင့်တပြေးညီတိုးတက်မှုများပြုလုပ်ရန်လိုအပ်သည့်အခြေအနေများအတွက်အထူးသင့်တော်သည်။


4 ။ ဘုံအခြေအနေများနှင့် application များ

  1. long-run scripts (ဒေါင်းလုပ်ဆွဲခြင်း,
    အကယ်. သင်သည် (ဖိုင်တင်ခြင်းသို့မဟုတ်ဒေါင်းလုပ်လုပ်ခြင်းကဲ့သို့သော) ဖြည့်စွက်ရန်အချိန်ကြာမြင့်စွာပြုလုပ်ရန်အချိန်ကြာမြင့်စွာလုပ်ဆောင်နေသည့်အလုပ်တစ်ခုကိုသင်လုပ်နေပါက ob_flush () နှင့် flush () နှင့် flush () နှင့် flush () ကို သုံးနိုင်သည်။

  2. Real-Time Data Push <br> ဥပမာအားဖြင့်, Real-time data display, chat system နှင့်အခြားအခြေအနေများတွင်အချက်အလက်များကိုအသုံးပြုသူ browser ကိုအချိန်မှန်သို့တွန်းပို့နိုင်ရန်နှင့်စာမျက်နှာများကိုကြည့်ရှုခြင်းမှရှောင်ရှားရန်အသုံးပြုသည်

  3. Page Renderization Optimization <br> <br> Page Rendering Page Rendering Page တွင် ob_flush () နှင့် flush () ကို အသုံးပြုခြင်းသည်အသုံးပြုသူများကိုစာမျက်နှာ၏အစိတ်အပိုင်းတစ်ခုကိုကြည့်ရှုရန်ခွင့်ပြုသည်။