PHP自動執行任務的網站建設代碼
PHP自動執行任務,關掉頁面或瀏覽器也會自動定時執行:
<?php
ignore_user_abort(); //即使Client斷開(如關掉瀏覽器),PHP腳本也可以繼續執行.
set_time_limit(0); // 執行時間為無限制,php默認的執行時間是30秒,通過set_time_limit(0)可以讓程序無限制的執行下去
$interval=60*5; // 每隔5分鐘運行
do{
$fp = fopen('test.txt','a');
fwrite($fp,'test');
fclose($fp);
sleep($interval); // 按設置的時間等待5分鐘循環執行
}while(true);
?>
首先運行該程序,然后關閉該頁面,程序仍然運行中,test便會每隔30秒的寫入到text3.txt文件。
隔時生成首頁的PHP代碼:
<?php
set_time_limit(0);
$baseCmsUrl = "http://www.studstu.com";//你網站的根網址,結束不要加 /
$dmPageName = "index.php";//動態主頁的名稱
$stPageName = "index.html";//生成靜態主頁的名稱
$mkTime = 3600;//你希望多長時間更新一次,單位是秒
//下面是執行的代碼
$tureStFile = dirname(__FILE__).'/'.$stPageName;
$ftime = @filemtime($tureStFile);
if(!file_exists($tureStFile) || ($ftime < time()-$mkTime))
{
$body = file_get_contents($baseCmsUrl.'/'.$dmPageName);
$fp = fopen($tureStFile, 'w');
fwrite($fp, $body);
fclose($fp);
}
?>
將上面代碼保存為task.php
在經常訪問的頁面調用:<script language='Javascript' src='task.php'></script>
在某個固定的時間執行的PHP代碼:
<?php
//計劃執行時間
if($job=='cron'){
check_method();
//查詢數據庫的下一個時間是否小于現在的時間
if($maxrecord['deltemptime']<$nowtime['timestamp']){
$crondb = array();
//day為0為每日 week周 minute時間斷 hour什么時侯開始
$rt['cron'] = array('day'=>'0','week'=>$config['cron_week'],'m'=>$config['cron_minute'],'hour'=>$config['cron_hour']);
$crondb[] = $rt;
}
foreach ($crondb AS $key => $cron_val){
//設置了允許分鐘段
if (!empty($config['cron_minute'])){
$m = explode(' ', $config['cron_minute']);
$m_now = intval(local_date('i',$nowtime['timestamp']));
if (!in_array($m_now, $m)) {//不包含此分鐘的跳出
continue;
}
}
/*執行任務*/
/*********此處是你寫的任務***********************/
$next_time = get_next_time($cron_val['cron']);
$DB->query("UPDATE `maxrec` SET `deltemptime`={$next_time}");
}
exit;
}
?>



















