頁面關閉後,PHP程序沒有終止執行的解決辦法

解決辦法:

  1. 設置頁面超時時間

  2. 設置 ignore_user_abort 爲false

  3. 判斷 connection_aborted

注:方法 2/3 都是通過與客戶端的交互獲取到的頁面狀態,所有必須存在實時輸出。

採用 2 時,當瀏覽器關閉後,程序自動終止;

採用 3 的話,可以進行後續操作,例如,用戶中途關閉頁面後,記錄日誌

 


<?php
    
//ignore_user_abort(false);

$i = 1;
while (1) {
    if (!connection_aborted()) {
        file_put_contents('hah.txt', $i . PHP_EOL, FILE_APPEND);
        echo 1;
        ob_flush();
        flush();
        sleep(1);
        $i ++;
    } else {
        file_put_contents('stop.txt', $i . PHP_EOL);
        exit();
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章