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 ၏သမာဓိကိုသေချာစေရန်ဤဆောင်းပါးသည်ဤဆောင်းပါးသည်အသေးစိတ်အချက်အလက်များကိုအသေးစိတ်မိတ်ဆက်ပေးလိမ့်မည်။
ob_end_flush () သည်လက်ရှိ output buffer ကိုပိတ်ပြီး Buffer ရှိ contents များကို browser သို့ပို့ရန်အသုံးပြုသည်။ ဥပမာအားဖြင့်:
<?php
ob_start();
echo "ဤသည် buffered output ကိုဖြစ်ပါတယ်。";
ob_end_flush(); // buffered အကြောင်းအရာပေးပို့နှင့်ကြားခံပိတ်ပါ
?>
စာမျက်နှာ output ကိုခေတ္တသိမ်းရန် Buffer ကို အသုံးပြု. Output ကို Output မတိုင်မီ output ကိုပြင်ဆင်ရန်သို့မဟုတ်ဖမ်းယူရန်ခွင့်ပြုပါ။
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);
});
?>
ပုံမှန်အားဖြင့် PHP သည် session တစ်ခု၏ session data ကိုသိမ်းဆည်းရန် script_write_close () ကိုအလိုအလျောက်ခေါ်ဆိုသည်။ သို့သော် output buffer ကို အသုံးပြု. ob_end_flush () ob_end_flush () output ကိုကြိုတင်ထုတ်လွှင့်ရန်ခေါ်ပါက၎င်းသည်အချက်အလက်ဆုံးရှုံးမှုသို့မဟုတ်ကိုက်ညီမှုမရှိသောအခြေအနေကိုဖြစ်ပေါ်စေခြင်းမပြုမီအချက်အလက်များကိုစတင်ရန်ပြုလုပ်နိုင်သည်။
တစ်ချိန်တည်းမှာပင်, session_register_shutdown () သည် session data ၏သမာဓိကိုသေချာစေရန်အစည်းအဝေးပိတ်ထားသည့်အခါစိတ်ကြိုက်စစ်ဆင်ရေးအချို့ကိုပြုလုပ်ရန်ခွင့်ပြုသည်။
၎င်းကိုမည်သို့ကျိုးကြောင်းဆီလျော်စွာအသုံးပြုရမည်ကိုသရုပ်ပြသည်။
<?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 ၏အရေးအသားကိုမထိခိုက်စေဘဲစာမျက်နှာအကြောင်းအရာကိုအချိန်မီဖြင့်အချိန်မီပေးပို့ခြင်းကိုသေချာစေသည်။
Session_Start () ကိုမည်သည့် output မတိုင်မီခေါ်ယူရန်သေချာပါစေ။
session_register_shutdown () ၏ callback function ကို () output ကြားခံပြည်နယ်အပေါ် မူတည်. မရပါ။
အကယ်. သင် session data ကိုပြုပြင်ရန်လိုအပ်ပါက ob_end_flush () မခေါ်မီ၎င်းကိုဖြည့်စွက်ရန်အကြံပြုသည်။
PHP 7 နှင့်နောက်ပိုင်းတွင် Session_register_shutdown () သည် PHP သည်အလိုအလျောက်ကိုင်တွယ်လိမ့်မည်ဖြစ်သောကြောင့်လက်စွဲခေါ်ဆိုမှုမလိုအပ်ပါ။
ob_end_flush () နှင့် session_register_shutdown () သည်ဈေးကြီးစွာပေါင်းစပ်ခြင်း () developer များသည် developer များကိုပိုမိုကောင်းမွန်သောထိန်းချုပ်မှုနှင့်အချက်အလက်များဆိုင်ရာအချက်အလက်များကိုပိုမိုထိန်းချုပ်နိုင်ပြီးအချက်အလက်များဆုံးရှုံးခြင်းအတွက်အချက်အလက်ဆုံးရှုံးမှုသို့မဟုတ်အခြေအနေဆိုင်ရာဆုံးရှုံးမှုသို့မဟုတ်အခြေအနေပုံမှန်မဟုတ်သောဖြစ်မှုကိုရှောင်ရှားနိုင်သည်။
အထက်ပါဥပမာများနှင့်ညွှန်ကြားချက်များမှတစ်ဆင့်သင်နှစ် ဦး ၏ပူးပေါင်းအသုံးပြုမှုကိုကျွမ်းကျင်စွာအသုံးပြုခဲ့ပြီး Session Security Security နှင့် PHP စီမံကိန်းများတွင် Session Security နှင့် Page output တည်ငြိမ်မှုကိုထိန်းသိမ်းထားနိုင်သည်ဟုကျွန်ုပ်ယုံကြည်သည်။