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定時執行任務的實現就為大家介紹這麼多,之後還有相關文章為大家分享,不要錯過。
以上就介紹了詳解PHP實作執行定時任務,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。