解決辦法:
-
設置頁面超時時間
-
設置
ignore_user_abort
爲false -
判斷
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();
}
}