PHP在這方面應該說是比較弱,如果只用php去實現可以如下:
<?php ignore_user_abort();//關閉浏覽器後,繼續執行php代碼 set_time_limit(0);//程序執行時間無限制 $sleep_time = 1;//多長時間執行一次 do{ $fp = fopen('test.txt','a+'); fwrite($fp,"這是一個php博客:phpddt.com \n"); fclose($fp); sleep($sleep_time); }while(true); ?>
但是當我執行腳本的時候,即使我關閉了浏覽器,我根本就沒法去停止這段程序了,所以你需要一個執行腳本的開關,你可以用外部文件引入的方法來實現,在while循環的時候,include開關變量即可。那麼就可以這樣實現:
建立外部引入變量文件 switch.php 內容如下:
<?php return 1;//1執行腳本 0退出執行腳本 ?>
改良腳本如下:
<?php ignore_user_abort();//關閉浏覽器後,繼續執行php代碼 set_time_limit(0);//程序執行時間無限制 $sleep_time = 5;//多長時間執行一次 $switch = include 'switch.php'; while($switch){ $switch = include 'switch.php'; $fp = fopen('test.txt','a+'); fwrite($fp,"這是一個php博客:phpddt.com $switch \n"); fclose($fp); sleep($sleep_time); } exit(); ?>
這個腳本只是測試可行,具體效率應該不高,對於lamp,你完全可以使用crontab 來實現。
再補充一段小代碼:
ignore_user_abort();//關掉浏覽器,PHP腳本也可以繼續執行. set_time_limit(0);// 通過set_time_limit(0)可以讓程序無限制的執行下去 $interval=60*30;// 每隔半小時運行 do{ //這裡是你要執行的代碼 sleep($interval);// 等待5分鐘 }while(true);
關於PHP定時執行任務的實現就為大家介紹這麼多,之後還有相關文章為大家分享,不要錯過。