如果由頁面執行,設定
<?php
ignore_user_abort(true);
set_time_limit(0);
?>
運用sleep(300)+死循環,
這樣就可以實作計劃任務了,這個程式裡不要有輸出,有輸出容易中斷
<?php
ignore_user_abort(true);
set_time_limit(0);
while(1){
$fp = fopen('time_task.txt',"a+");
$str = date("Y-m-d h:i:s")."n";
fwrite($fp,$str);//記錄到time_task.txt文本
fclose($fp);
sleep(1800); //半小時執行一次
}
?>
函數int ignore_user_abort :
從函數名本身,可以解釋為,"忽略使用者的影響"
因為所謂的使用者是指用戶端,即浏覽器
是以進一步解釋為,"忽略浏覽器的影響"
那麼影響指的是什麼,影響指的是浏覽器的關閉和異常
也就是說有這個函數在的php程式,即使在浏覽器關掉的時候,程式沒有執行完它還會繼續執行,直到執行完
比如說,你有一段代碼需要執行100秒,可是這個時間太長了,一般使用者等不及,在等了60秒的時候受不了就關了
如果這個時候程式也随之終止,很可能造成資料異常,不一緻或是錯誤,你需要程式繼續運作,就可以用它了
它的參數就是真和假,真就是忽略,假就是不忽略