လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> session_register_shutdown () ကို ob_end_flush () ကိုသုံးပါ။

session_register_shutdown () ကို ob_end_flush () ကိုသုံးပါ။

M66 2025-06-04

PHP တွင် output outputing ယန္တရားသည် developer များကိုပြောင်းလွယ်ပြင်လွယ် output_flush () function သည် ob_end_flush () function သည် browser ကိုအဆုံးသတ်ရန်အသုံးပြုသောဘုံလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ တစ်ချိန်တည်းမှာပင်, session_register_shutdown () ကို callback function ကိုမှတ်ပုံတင်ရန်အသုံးပြုသည်။ ၎င်းသည် session data set dature ၏စုဆောင်းသန့်ရှင်းရေးကိုကိုင်တွယ်နိုင်ရန်အလိုအလျောက်ကွပ်မျက်ခံရသည်။

Session_register_RSHUTDown () function ကိုအသုံးပြုသော Session of Ob_Ed_SULLD_FLUSH () function ကို အသုံးပြု. Page Content ၏သမာဓိကိုသေချာစေရန်ဤဆောင်းပါးသည်ဤဆောင်းပါးသည်အသေးစိတ်အချက်အလက်များကိုအသေးစိတ်မိတ်ဆက်ပေးလိမ့်မည်။


1 ။ OB_END_FLUSH () ၏အခန်းကဏ်။

ob_end_flush () သည်လက်ရှိ output buffer ကိုပိတ်ပြီး Buffer ရှိ contents များကို browser သို့ပို့ရန်အသုံးပြုသည်။ ဥပမာအားဖြင့်:

 <?php
ob_start();

echo "ဤသည် buffered output ကိုဖြစ်ပါတယ်。";

ob_end_flush(); // buffered အကြောင်းအရာပေးပို့နှင့်ကြားခံပိတ်ပါ
?>

စာမျက်နှာ output ကိုခေတ္တသိမ်းရန် Buffer ကို အသုံးပြု. Output ကို Output မတိုင်မီ output ကိုပြင်ဆင်ရန်သို့မဟုတ်ဖမ်းယူရန်ခွင့်ပြုပါ။

2 ။ session_register_shutdown () ၏အခန်းကဏ်။

session_register_shutdown () session ကိုပိတ်လိုက်သည့်အခါ callback function ကိုမှတ်ပုံတင်ရန်အသုံးပြုသည်။ ဤ callback function ကို script ကိုကွပ်မျက်ခံရသောအခါအလိုအလျောက်ကွပ်မျက်ခံရလိမ့်မည်။ ၎င်းသည် session ရေးသားခြင်းနှင့်သန့်ရှင်းရေးကိုကိုင်တွယ်ရန်အသုံးပြုလေ့ရှိသည်။

PHP 5.4.0 မှစတင်. session_register_shutdown () ကို စတင်ခြင်းသည်၎င်းကို၎င်းကိုလက်ဖြင့်ခေါ်ရန်မလိုဘဲအလိုအလျောက်ဟုခေါ်လိမ့်မည်။ သို့သော်လက်ဖြင့်မှတ်ပုံတင်ခြင်းသည်ဗားရှင်းဟောင်းများသို့မဟုတ်အထူးလိုအပ်ချက်များတွင်အသုံးဝင်ဆဲဖြစ်သည်။

မှတ်ပုံတင်ခြင်းဥပမာ -

 <?php
session_register_shutdown(function() {
    // session ကိုပိတ်ထားသည့်အခါလုပ်ဆောင်ချက်များဖျော်ဖြေ
    file_put_contents('session_log.txt', "Session closed at " . date('Y-m-d H:i:s') . "\n", FILE_APPEND);
});
?>

3 ။ အဘယ်ကြောင့် ob_end_flush () နှင့် session_register_shutdown () အတူတကွအတူတကွအသုံးပြုရန်လိုအပ်သနည်း။

ပုံမှန်အားဖြင့် PHP သည် session တစ်ခု၏ session data ကိုသိမ်းဆည်းရန် script_write_close () ကိုအလိုအလျောက်ခေါ်ဆိုသည်။ သို့သော် output buffer ကို အသုံးပြု. ob_end_flush () ob_end_flush () output ကိုကြိုတင်ထုတ်လွှင့်ရန်ခေါ်ပါက၎င်းသည်အချက်အလက်ဆုံးရှုံးမှုသို့မဟုတ်ကိုက်ညီမှုမရှိသောအခြေအနေကိုဖြစ်ပေါ်စေခြင်းမပြုမီအချက်အလက်များကိုစတင်ရန်ပြုလုပ်နိုင်သည်။

တစ်ချိန်တည်းမှာပင်, session_register_shutdown () သည် session data ၏သမာဓိကိုသေချာစေရန်အစည်းအဝေးပိတ်ထားသည့်အခါစိတ်ကြိုက်စစ်ဆင်ရေးအချို့ကိုပြုလုပ်ရန်ခွင့်ပြုသည်။

4 ။ လက်တွေ့ကျတဲ့ဥပမာ - ပေါင်းစပ်အသုံးပြုပါ

၎င်းကိုမည်သို့ကျိုးကြောင်းဆီလျော်စွာအသုံးပြုရမည်ကိုသရုပ်ပြသည်။

 <?php
session_start();

// မှတ်ပုံတင်ခြင်းကိုမှတ်ပုံတင်သည့်အခါပြန်သွားပါ,session ကိုမှန်ကန်စွာရေးသားထားကြောင်းသေချာပါစေ
session_register_shutdown(function() {
    // သင်စိတ်ကြိုက် session ကိုပိတ်ထားနိုင်သည်
    error_log("Session is closing at " . date('Y-m-d H:i:s'));
});

// output ကိုကြားခံဖွင့်ပါ
ob_start();

echo "စာမျက်နှာအကြောင်းအရာ output ကိုစတင်သည်。<br>";

// စီးပွားရေးယုတ္တိဗေဒအပြောင်းအလဲနဲ့,ပြုပြင်မွမ်းမံနိုင်ပါတယ် session အချက်များ
$_SESSION['last_access'] = time();

// output buffering ကိုအဆုံးသတ်ပြီးအကြောင်းအရာကိုပို့ပါ
ob_end_flush();
?>

ဤဥပမာတွင် session_register_shutdown () session ကိုပိတ်ထားသည့်အခါယုတ္တိဗေဒကိုခေါ်လိမ့်မည်ဟုသေချာသည်။ OB_END_FLUSH () သည် session ၏အရေးအသားကိုမထိခိုက်စေဘဲစာမျက်နှာအကြောင်းအရာကိုအချိန်မီဖြင့်အချိန်မီပေးပို့ခြင်းကိုသေချာစေသည်။

5 ။ မှတ်စုဖို့အရာ

  • Session_Start () ကိုမည်သည့် output မတိုင်မီခေါ်ယူရန်သေချာပါစေ။

  • session_register_shutdown () ၏ callback function ကို () output ကြားခံပြည်နယ်အပေါ် မူတည်. မရပါ။

  • အကယ်. သင် session data ကိုပြုပြင်ရန်လိုအပ်ပါက ob_end_flush () မခေါ်မီ၎င်းကိုဖြည့်စွက်ရန်အကြံပြုသည်။

  • PHP 7 နှင့်နောက်ပိုင်းတွင် Session_register_shutdown () သည် PHP သည်အလိုအလျောက်ကိုင်တွယ်လိမ့်မည်ဖြစ်သောကြောင့်လက်စွဲခေါ်ဆိုမှုမလိုအပ်ပါ။

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

ob_end_flush () နှင့် session_register_shutdown () သည်ဈေးကြီးစွာပေါင်းစပ်ခြင်း () developer များသည် developer များကိုပိုမိုကောင်းမွန်သောထိန်းချုပ်မှုနှင့်အချက်အလက်များဆိုင်ရာအချက်အလက်များကိုပိုမိုထိန်းချုပ်နိုင်ပြီးအချက်အလက်များဆုံးရှုံးခြင်းအတွက်အချက်အလက်ဆုံးရှုံးမှုသို့မဟုတ်အခြေအနေဆိုင်ရာဆုံးရှုံးမှုသို့မဟုတ်အခြေအနေပုံမှန်မဟုတ်သောဖြစ်မှုကိုရှောင်ရှားနိုင်သည်။

အထက်ပါဥပမာများနှင့်ညွှန်ကြားချက်များမှတစ်ဆင့်သင်နှစ် ဦး ၏ပူးပေါင်းအသုံးပြုမှုကိုကျွမ်းကျင်စွာအသုံးပြုခဲ့ပြီး Session Security Security နှင့် PHP စီမံကိန်းများတွင် Session Security နှင့် Page output တည်ငြိမ်မှုကိုထိန်းသိမ်းထားနိုင်သည်ဟုကျွန်ုပ်ယုံကြည်သည်။