程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 詳解PHP實現執行定時任務

詳解PHP實現執行定時任務

編輯:PHP綜合

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定時執行任務的實現就為大家介紹這麼多,之後還有相關文章為大家分享,不要錯過。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved