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

PHP တွင်အနှောင့်အယှက်ပေးခြင်းကိုမည်သို့ကာကွယ်ရမည်နည်း။ စစ်ဆင်ရေးကိုဖျက်သိမ်းမထားသည့်နည်းလမ်းကိုအကောင်အထည်ဖော်ရန် Idey_User_abort ကိုသုံးပါ

gitbox 2025-05-29

PHP ကိုရေရှည်အလုပ်များကိုလုပ်ဆောင်ရန်အသုံးပြုသောအခါအသုံးပြုသူများသည်ဘရောက်ဇာကိုပိတ်ထားသည့်သို့မဟုတ်တောင်းဆိုမှုကိုတက်ကြွစွာဖြုတ်ချသည့်အခြေအနေကိုကျွန်ုပ်တို့မကြာခဏကြုံတွေ့ရတတ်ပြီး PHP script ကိုဖျက်သိမ်းလိမ့်မည်။ ၎င်းသည်ရေရှည်သို့မဟုတ်နောက်ခံကိုစဉ်ဆက်မပြတ်လုပ်ဆောင်ရန်လိုအပ်သော scripts များအတွက်အလွန်ဆိုးဝါးသည်။ ထို့ကြောင့်အသုံးပြုသူအဆက်ပြတ်သည့်အခါ script ကိုဖျက်သိမ်းရန်မည်သို့ကာကွယ်နိုင်သနည်း။ အဖြေမှာ လျစ်လျူရှုခြင်း () function ကိုအသုံးပြုရန်ဖြစ်သည်။

Idegal_User_abort ဆိုတာဘာလဲ။

လျစ်လျူရှုထားသည့် Idegal_User_abort () သည် PHP မှပေးသော function တစ်ခုဖြစ်ပြီး client သည် client client client client ကိုဆက်လက်လုပ်ဆောင်နေသည်။

 ignore_user_abort(true);

စစ်မှန်တဲ့ parameter သည်လွန်သွားသောအခါ PHP script သည်လုပ်ဆောင်မှုပြီးဆုံးသည်အထိသို့မဟုတ်တက်ကြွစွာထွက်ပေါ်လာသည်အထိအသုံးပြုသူသည် browser ကိုပိတ်ထားလျှင်ပင် PHP script သည်ဆက်လက်လုပ်ဆောင်သွားမည်ဖြစ်သည်။

quick_user_abort ၏ application scarios

  • asynchronous အလုပ်များကိုကိုင်တွယ်

  • နောက်ခံ Qu>

  • အချိန် task simulation ကွပ်မျက်

  • ဖိုင်မျိုးဆက်သို့မဟုတ်ကြီးမားသောဒေတာတင်ပို့မှု

  • ပြည်နယ်ရှေ့နောက်ညီညွတ်မှုကိုထိန်းသိမ်းရန်လိုအပ်ကြောင်းနောက်ခံစစ်ဆင်ရေး

လက်တွေ့ကျပုံဥပမာတစ်ခုပေးရန်သင်သည် system backup function ကိုရေးဆွဲနေပါကအသုံးပြုသူသည် "Start Backup" ကိုနှိပ်လိုက်ပါက script သည်ဆယ်မိနစ်ကျော်ကြာရန်လိုအပ်သည်။ အသုံးပြုသူသည် browser ကိုပိတ်ထားပါက script ကို default ဖြင့်ဖျက်သိမ်းပြီးနောက်ခံအလုပ်ပျက်ကွက်လိမ့်မည်။ away_user_abort (True) မှတဆင့်) အသုံးပြုသူသည်စာမျက်နှာမှထွက်ခွာလျှင်ပင် backup ကိုပြီးစီးသည်အထိ script ကို script ကိုဆက်လက်လုပ်ဆောင်သွားမည်ဖြစ်သည်။

Idey_User_abort ကိုဘယ်လိုသုံးရမလဲ

ဤတွင်ပုံမှန်ရှည်လျားသောအလုပ်ပြုပြင်ခြင်းကုဒ်ဥပမာတစ်ခုဖြစ်သည်။

 <?php
ignore_user_abort(true); // အသုံးပြုသူဆက်သွယ်မှုကိုချိုးဖောက်ရင်တောင်ဆက်လုပ်ပါ
set_time_limit(0); // Script Execution Time ကန့်သတ်ချက်ကိုပယ်ဖျက်ပါ

file_put_contents('log.txt', "မစ်ရှင်စတင်ချိန်:" . date('Y-m-d H:i:s') . "\n", FILE_APPEND);

// ရေရှည်အလုပ်တစ်ခုကိုဖန်တီးပါ
for ($i = 1; $i <= 10; $i++) {
    file_put_contents('log.txt', "1 ။ {$i} အဆင့် -by-step ကွပ်မျက်...\n", FILE_APPEND);
    sleep(5); // ခြင်း simulation တစ်ခုချင်းစီခြေလှမ်းများအတွက်အချိန် - စားသုံးခြင်း
}

file_put_contents('log.txt', "Task ပြီးစီးအချိန်:" . date('Y-m-d H:i:s') . "\n", FILE_APPEND);
?>

ဥပမာအားဖြင့်ဤ script ကို curl (သို့) Ajax တောင်းဆိုမှုများမှတစ်ဆင့်ခေါ်ဆိုနိုင်သည်။

 fetch("https://gitbox.net/run-task.php");

အသုံးပြုသူသည်တောင်းဆိုမှုကိုပေးပို့ပြီးနောက်အသုံးပြုသူသည် browser ကိုပိတ်ထားလျှင်ပင် script ကိုအပြည့်အဝအကောင်အထည်ဖော်လိမ့်မည်။

connection status ကိုစစ်ဆေးပါ

အသုံးပြုသူအဆက်ပြတ်သည့်နောက်တွင်အသုံးပြုသူအဆက်ပြတ်သည့်နောက်တွင်သင်သည်ယုတ္တိရှိသောအပြောင်းအလဲများကိုပြုလုပ်လိုပါကအချို့သောအပြုအမူများကိုရေးသားခြင်းသို့မဟုတ်အချို့သောအပြုအမူများကို အသုံးပြု. ဆက်သွယ်မှု () function ကိုသုံးနိုင်သည်။

 if (connection_aborted()) {
    file_put_contents('log.txt', "အသုံးပြုသူဆက်သွယ်မှုပြတ်တောက်သွားသည်\n", FILE_APPEND);
}

Idegal_User_abort (True) ဖြင့်အသုံးပြုသည်။

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

  • ide_user_abort ကိုအသုံးပြုခြင်း () ခြွင်းချက်အားလုံးကိုလျစ်လျူရှုနိုင်ဟုမဆိုလိုပါ,

  • Set_Te_Limit (0) ကို အများဆုံးကွပ်မျက်ချိန်ကန့်သတ်ချက်ကိုပယ်ဖျက်ရန်တစ်ချိန်တည်းတွင်အသုံးပြုရန်အကြံပြုပါသည်။

  • အကယ်. script သည်အချက်အလက်များကို 0 န်ဆောင်မှုခံယူသူအားအချက်အလက်များကိုထုတ်ဖော်ပြောဆိုပါက ob_start () ထုတ်လုပ်မှုဆိုင်ရာအပြုအမူများကြောင့်ဖြစ်ပေါ်လာသောဆက်သွယ်မှုပြ problems နာများကိုရှောင်ရှားရန် ob_start () ကို အသုံးပြုရန်ကြိုးစားပါ။

အကျဉ်းချုပ်

PHP တွင်အလုပ်များကိုတာရှည်သောအလုပ်များကိုကိုင်တွယ်သည့်အခါ လျစ်လျူရှုခြင်းကို အသုံးပြုခြင်းသည်စာနယ်ဇင်းသမားကအသုံးပြုသူမှဇာတ်ညွှန်းကိုအနှောင့်အယှက်မပေးနိုင်စေရန်ထိရောက်သောနည်းလမ်းတစ်ခုဖြစ်သည်။ ၎င်းသည်လုပ်ငန်းများကိုဆာဗာဘက်တွင်အပြည့်အ 0 ကွပ်မျက်။ စနစ်၏တည်ငြိမ်မှုနှင့်ယုံကြည်စိတ်ချရမှုကိုတိုးတက်စေနိုင်သည်။ ၎င်းသည်နောက်ခံဇာတ်ညွှန်းအတွက် backup လုပ်ခြင်း, တွန်းတင်ခြင်း, ပို့ကုန်စသည်တို့ပါ 0 င်သည့်နောက်ခံဇာတ်ညွှန်းအတွက်အလွန်လက်တွေ့ကျသည့်လှည့်ကွက်တစ်ခုဖြစ်သည်။