⑴ Windows中使用計劃任務自動執行php程序實例
所謂任務計劃就是由計算機自動調用用戶事先設置好的應用程序,從而達到簡化用戶操作的目的。利用Windows
2000的任務計劃程序(相當與*NIX下的cron程序,這里不再對其詳述),我們可以安排任何腳本、程序或文檔在最恰當的時候運行,從而滿足自己的需要。下面以Windows
2000為例。
具體來說,我們若需利用任務計劃程序自動運行則應執行如下步驟:
單擊"開始"按鈕,然後依次選擇"程序"→"附件"→"系統工具"→"任務計劃"(或者是"設置"→"控制面板"→"任務計劃"),啟動Windows
2000的任務計劃管理程序。
在"任務計劃"窗口中雙擊"添加任務計劃"圖標,啟動系統的"任務計劃向導",然後單擊"下一步"按鈕,在給出的程序列表中選擇需要自動運行的應用程序,然後單擊"下一步"按鈕。
設置適當的任務計劃名稱並選擇自動執行這個任務的時間頻率(如每天、每星期、每月、一次性、每次啟動計算機時、每次登錄時等),然後單擊"下一步"按鈕。
此時系統將會要求用戶對程序運行的具體時間進行設置,如幾號、幾點鍾、哪幾個時間段才能運行等,我們只需根據自己的需要加以設置即可。
接下來系統將會要求用戶設置適當的用戶名及密碼(如圖5所示),以便系統今後能自動加以運行。
最後,我們只需單擊"完成"按鈕即可將相應任務添加到Windows
2000的任務計劃程序中,此後它就會自動"記住"這個任務,一旦系統時間及相關條件與用戶設置的計劃相符,它就會自動調用用戶所指定的應用程序,十分方
便(每次啟動Windows
2000的時候,任務計劃程序都會自動啟動,並在後台運行,確保用戶的計劃能夠按時執行)。
現在我們來測試一下剛才所建的任務是否成功,滑鼠右鍵單擊"php"程序圖標(如圖6所示),在彈出的菜單裡面選擇"運行"。一般情況下程序圖標只要這樣
激活運行就可以正常啟動。如果運行失敗可查看用戶和密碼是否設置正確,還有確定"Task
Scheler"服務是否已啟動,本人當初就是為了節省系統資源把它關掉了導致運行失敗,害我找了大半天。另外也可從"系統日誌"里查看到底是什麼原
因造成運行失敗的。
好了,講了這么多任務計劃的應用,現在我們切入正題,下面將介紹兩個例子:
一、讓PHP定時運行
編輯如下代碼,並保存為test.php:
復制代碼
代碼如下:
<?php
$fp
=
@fopen("test.txt",
"a+");
fwrite($fp,
date("Y-m-d
H:i:s")
.
"
讓PHP定時運行吧!\n");
fclose($fp);
?>
⑵ 如何讓伺服器每隔幾分鍾自動運行php文件 win7
1、計算機(右鍵)->管理 ,然後就可以打開 「計算機管理」界面。
2、在界面的左側有一個 系統工具->任務計劃程序 ,在此用戶可以創建定時執行的計劃任務,並且可以為每個任務添加觸發器和具體的操作。
5、最後,按向導提示設置完成即可。
⑶ php網站程序如何按照指定時間每日運行
php計劃任務(按指定時間來運行某個程序)
前一陣子遇到有一個程序要在某個時間點來運行,但想來想去也不知用那種方法來觸發這個程序,第一個想到的時用JS配合PHP來現實,但沒有實現成功,後來請教了一個高手說可以在操作系統里配置。在 linux 中,我們經常用到 crond 伺服器來完成這項工作。cron 伺服器可以根據配置文件約定的時間來執行特定的作務。比如我們可以在配置文件中約定每天早上4點,對 httpd 伺服器重新啟動,這就是一個計劃任務;windows 的計劃任務我們大家都很熟悉。下面我要介紹的是網站計劃任務(訪問觸發)。
第一個首先要解決的時誰來觸發,我選擇的是用前台頁面來觸發,
代碼如下:
代碼:<img src="visit.php?job=cron&t=1212880316" alt="" style="width:0px;height:0px;" />
t=1212880316//這個是時間
第二個要解決的時什麼時侯運行,(具體的不講了,把代碼貼出)
代碼://計劃執行時間
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;
}
⑷ linux系統怎麼添加計劃任務執行php文件
1.打開linux系統命令行界面。
輸入完成後,按下「ESC」鍵並在當前命令行輸入「:」,在「:」後輸入「wq」,再回車,出現如下提示,證明計劃任務添加成功。
Linux計劃任務的執行頻率:
命令開始部分的頻率,由五個部分組成,分別代表分鍾、小時、日、月、星期(0是星期日)。當前頻率全部執行時,用「*」表示,所以才會出現這么多「*」。下面的例子,可以幫助大家理解:
下面的計劃任務會一直運行
* * * * * [command]
下面的計劃任務會在每個小時的0分時運行(就是每小時執行一次)
0 * * * * [command]
下面依舊是一個每小時運行一次的計劃任務。不過是在每個小時的一刻鍾時運行的(1:15,2:15.。。)
15 * * * * [command]
下面的計劃任務每天執行一次,在2:30分
30 2 * * * [command]
下面的計劃任務是在每個月2號的午夜執行(比如:2010年2月2日00:00)
0 0 2 * * [command]
下面的計劃任務會在每周一的每個小時0分鍾時執行一次
0 * * * 1 [command]
下面的會每小時運行3次,在0分,10分,和20分時
0,10,20 * * * * [command]
下面是用除號「/」表示每多少運行一次。本例是每5分鍾運行一次
*/5 * * * * [command]
還可以用「-」表示一個范圍,如下表示5到10點的每個整點運行一次
0 5-10 * * * [command]
另外還有一個特殊的時間關鍵字「@reboot」,就是每次重啟伺服器時運行計劃任務
@reboot [command]
⑸ php discuz的定時任務是什麼原理怎麼實現的求高手解答
php中定時計劃任務的實現原理:
當 PHP 腳本正常地運行 NORMAL 狀態時,連接為有效。當遠程客戶端中斷連接時,ABORTED 狀態的標記將會被打開。遠程客戶端連接的中斷通常是由用戶點擊 STOP 按鈕導致的。當連接時間超過 PHP 的時限時,TIMEOUT 狀態的標記將被打開。
示例代碼:
<?php
ignore_user_abort(true);set_time_limit(0);
date_default_timezone_set('PRC'); // 切換到中國的時間
$run_time = strtotime('+1 day'); // 定時任務第一次執行的時間是明天的這個時候
$interval = 3600*12; // 每12個小時執行一次
if(!file_exists(dirname(__FILE__).'/cron-run')) exit(); // 在目錄下存放一個cron-run文件,如果這個文件不存在,說明已經在執行過程中了,該任務就不能再激活,執行第二次,否則這個文件被多次訪問的話,伺服器就要崩潰掉了
do {
if(!file_exists(dirname(__FILE__).'/cron-switch')) break; // 如果不存在cron-switch這個文件,就停止執行,這是一個開關的作用
$gmt_time = microtime(true); // 當前的運行時間,精確到0.0001秒
$loop = isset($loop) && $loop ? $loop : $run_time - $gmt_time; // 這里處理是為了確定還要等多久才開始第一次執行任務,$loop就是要等多久才執行的時間間隔
$loop = $loop > 0 ? $loop : 0;
if(!$loop) break; // 如果循環的間隔為零,則停止
sleep($loop);
// ...
// 執行某些代碼
// ...
@unlink(dirname(__FILE__).'/cron-run'); // 這里就是通過刪除cron-run來告訴程序,這個定時任務已經在執行過程中,不能再執行一個新的同樣的任務
$loop = $interval;
} while(true);
⑹ 計劃任務的執行程序可以用php寫嗎
php是服務端腳本 前提是需要伺服器來支持的,如果你寫計劃程序是調用在伺服器發布過的網站中的php文件的話 應該是沒問題的 否則是不可能的