လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ၏ထွက်ပေါက်နှင့် ob_end_flush () ပ conflict ိပက်ခ () ပ conflict ိပက်ခ () ပ conflict ိပက်ခကိုအတူတကွအသုံးပြုပါမည်လား။ လိုက်ဖက်တဲ့အသေးစိတ်အချက်အလက်များ

PHP ၏ထွက်ပေါက်နှင့် ob_end_flush () ပ conflict ိပက်ခ () ပ conflict ိပက်ခ () ပ conflict ိပက်ခကိုအတူတကွအသုံးပြုပါမည်လား။ လိုက်ဖက်တဲ့အသေးစိတ်အချက်အလက်များ

gitbox 2025-06-08

PHP ပရိုဂရမ်တွင် ထွက်ပေါက် နှင့် ob_end_flush () သည်ဘုံလုပ်ဆောင်မှုများဖြစ်သည်။ Exit ကို script_flush () သည် carded content ကို output လုပ်ရန်နှင့် output buffer ကိုပိတ်ရန်အသုံးပြုသော script ၏ကွပ်မျက်မှုကိုအဆုံးသတ်ရန်အသုံးပြုသည်။ လုပ်ဆောင်ချက်နှစ်ခုသည်ကွဲပြားခြားနားသော်လည်းအချို့ကိစ္စများတွင်၎င်းတို့ကိုအတူတကွအသုံးပြုနိုင်သည်။ ထို့ကြောင့် ထွက်ပေါက် နှင့် ob_end_flush () အတူတကွအသုံးပြုသောအခါ၎င်းတို့တွင်ပ conflicts ိပက်ခများရှိပါသလား။ အသေးစိတ်ခွဲခြမ်းစိတ်ဖြာမှုမှတစ်ဆင့်သူတို့၏လိုက်ဖက်မှုကိုကျွန်ုပ်တို့နားလည်လိမ့်မည်။

1 ။ Exit function ကိုခွဲခြမ်းစိတ်ဖြာခြင်း

ထွက်ပေါက် () function ကိုလက်ရှိ script ၏ကွပ်မျက်မှုကိုအဆုံးသတ်ရန်သို့မဟုတ် status code ကို output လုပ်ရန်နှင့်ကွပ်မျက်မှုကိုအဆုံးသတ်ရန်အသုံးပြုသည်။ အောက်ပါအတိုင်းအသုံးပြုရန်အလွန်ရိုးရှင်းပါသည် -

 exit("Goodbye!");

ဤကုဒ်နံပါတ်သည် "Goodbye!" ကိုထုတ်ပစ်လိမ့်မည်။ နှင့် script ၏ကွပ်မျက်ရပ်ဆိုင်း။ Exit သည် ကိန်းဂဏန်းများကို script execution အတွက် status code အဖြစ်လည်းရနိုင်သည်။ ဇာတ်ညွှန်းသည်ဆိုးဝါးသောအမှားတစ်ခုကိုတွေ့သောအခါ ထွက်ပေါက် (1) မှထွက်ရန်မှာပုံမှန်အားဖြင့် ထွက်ပေါက် (0) မှထွက်ပေါက်မှထွက်နိုင်သည်။

 exit(1);  // ထွက်ပေါက်နှင့် status ကုဒ်ကိုပြန်သွားပါ 1

2 ။ ob_end_flush () function ကိုခွဲခြမ်းစိတ်ဖြာ

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

 ob_start();  // output ကို buffering စတင်ပါ
echo "Hello, world!";
ob_end_flush();  // output ကိုကြားခံနှင့် buffer ပိတ်ပါ

3 ။ ထွက်ပေါက်နှင့် ob_end_flush () ကိုအတူတကွအသုံးပြုကြသည်

3.1 ထွက်ပေါက် ၏သက်ရောက်မှု

OB_END_FLUSH () ထွက်ပေါက် () ထွက်ပေါက် (), ထွက်ပေါက် () ကိုတိုက်ရိုက်ခေါ်ဆိုပါကထွက်ပေါက် () ထွက်ပေါက် () ကို အသုံးပြုသောအခါ script uncourme ကိုတိုက်ရိုက်အဆုံးသတ်လိမ့်မည်။ ဆိုလိုသည်မှာ ထွက်ပေါက် () ကိုခေါ်ပါက, output-juspered content အပါအ 0 င်နောက်ဆက်တွဲ PHP ကုဒ်ကိုကွပ်မျက်ခြင်းကိုရပ်တန့်သွားလိမ့်မည်။ ထို့ကြောင့် ထွက်ပေါက် () output buffer ၏ contents ၏ contents ကို browser ကိုလုံးဝမပို့ပါ။

 ob_start();  // output ကို buffering စတင်ပါ
echo "Hello, ";
ob_end_flush();  // ပထမ ဦး ဆုံး output ကို cache
exit("Goodbye!");  // ကရိယာတန်းဆာ exit,script ကိုရပ်စဲ

ဤဥပမာတွင် "မင်္ဂလာပါ," OB_END_FLUSH () နှင့် "နှုတ်ဆက်ခြင်း" မှတဆင့် output ဖြစ်လိမ့်မည်။ ထွက်ပေါက် () မှဖျက်သိမ်းလိမ့်မည်။ ထို့ကြောင့် OB_END_FLUSH () ကို မထွက်ခွာမီ ဟုခေါ်ပါကယခင်အကြောင်းအရာများမှန်ကန်စွာ output ကိုမှန်ကန်စွာထုတ်လွှတ်လိမ့်မည်, သို့သော်အောက်ပါ ထွက်ပေါက် () သည်နောက်တဖန် output ကိုဖြစ်လိမ့်မည်မဟုတ်ပေ။

3.2 OB_END_FLUSH ၏အခန်းကဏ်။

OB_END_FLUSH () ကို ပထမ ဦး စွာ execute လုပ်ပါ က Output Buffer ရှိအကြောင်းအရာကိုယခုအချိန်တွင် Browser သို့ပို့သည် တစ်နည်းပြောရလျှင် OB_END_FLUSH () သည် Buffer ၏ contents ကို browser သို့ပထမဆုံးထုတ်ပြန်လိမ့်မည်

 ob_start();  // output ကို buffering စတင်ပါ
echo "Starting..."; 
ob_end_flush();  // output ကိုကြားခံနှင့် buffer ပိတ်ပါ
exit("Ending now.");

ဒီဥပမာမှာ browser ဟာအရင်က "စတင် ... " ကို အရင်ပြလိမ့်မယ်။ ပြီးတော့ဇာတ်ညွှန်းကချက်ချင်းရပ်စဲ လိမ့်မယ် မပြဘူး။

4 ။ မှတ်စုများ

  • OB_END_FLUSH () ထွက်ပါ။ သို့မဟုတ်ထွက်ပါ။ အများအားဖြင့်ပြ problem နာမရှိပါ။ အများအား ဖြင့် ပြ problem နာမရှိပါ

  • ထွက်ပေါက် () ကိုခေါ်ပါ။ ထို့နောက် ob_end_flush () ကိုခေါ်ပါ ။ Ob_end_Flush ( ) မှထွက်ပေါ်လာ ပါက out_end_flush () ကိုခေါ်ပါက output buffer အကြောင်းအရာကို browser သို့ပို့မည်မဟုတ်ပါ။ ဘာဖြစ်လို့လဲဆိုတော့ Exit () သည် scription (ob_end_flush () အပါအ 0 င်) scription ( ob_end_flush () အပါအ 0 င်) သည် Excription code များဖြင့်အဆုံးသတ်လိမ့်မည်။

  • Nested output buffering : ob_start () သို့မဟုတ် ob_flush () ob_sd_flush () ကိုအကြိမ်ပေါင်းများစွာအသုံးပြုပါက, ob_end_flush ကိုမခေါ်မီအကြိမ်ကြိမ်အသုံးပြုပါက၎င်းတို့၏ခေါ်ဆိုမှုအစီအစဉ်ကိုသတိထားပါ။

5 ။ အကျဉ်းချုပ်

ထွက်ပေါက် () နှင့် ob_end_flush () တွင်အသုံးပြုသောအခါပ conflicts ိပက်ခများရှိသည်ဖြစ်စေ, မလိုအပ်သောပြ problems နာများကိုရှောင်ရှားရန် ob_end_flush ( ) ကိုခေါ်ပြီးနောက်ထွက်ပေါက် () ကို အမြဲတမ်းခေါ်ဆိုရန်အစဉ်မပြတ်ထုတ်ဖော်ပြောဆိုရန်, ob_end_flush () ကို မထွက် ခင် ဟုခေါ်ပါက,

ဤလုပ်ဆောင်မှုနှစ်ခု၏ခေါ်ဆိုမှုအမိန့်ကိုကျိုးကြောင်းဆီလျော်စွာစီမံခန့်ခွဲခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ပရိုဂရမ်၏ output ကို ထွက်ပေါက်ခေါ်ဆိုမှု၏ထွက်ပေါ်လာခြင်းကြောင့်အကျိုးသက်ရောက်လိမ့်မည်မဟုတ်ကြောင်းသေချာစေနိုင်သည်။