PHP里有個函數很有用。這是在最近的開發中才逐漸用到的。
int ignore_user_abort ( [bool setting] )
這個函數的作用是指示服務器端在遠程客戶端關閉連接后是否繼續執行下面的腳本。
setting 參數是一個可選參數。如設置為True,則表示如果用戶停止腳本運行,仍然不影響腳本的運行(即:腳本將持續執行);如果設置為False,則表示當用戶停止運行腳本程序時,腳本程序將停止運行。
下面這個例子,在用戶關閉瀏覽器后,該腳本仍然后在服務器上繼續執行:
<?php
ignore_user_abort(); // 后台運行
set_time_limit(0); // 取消腳本運行時間的超時上限
do{
sleep(60); // 休眠1分鍾
}while(true);
?>
除非在服務器上關閉這個程序,否則這斷代碼將永遠執行下去。
-------------------------------------------------------------------------
<?php
ignore_user_abort(); // 后台運行
set_time_limit(0); // 取消腳本運行時間的超時上限
echo 'start.';
while(!file_exists('close.txt')){
$fp = fopen('test.txt','a+');
fwrite($fp,date("Y-m-d H:i:s") . " 成功了!rn");
fclose($fp);
sleep(10);
}
echo 'end.';
?>