|
網站建設中利用PHP自動執行任務代碼是很有用的,如讓程序定期自動生成靜態頁面等。如果您是PHP程序員,學習Javascript、Ajax、DIV+CSS、這些都是很有必要的。
1.在某個固定的時間執行的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;
- }
複製代碼 2.隔時生成首頁的PHP代碼:- set_time_limit(0);
- $baseCmsUrl = "http://www.teshopping.com.tw";//你網站的根網址,結束不要加 /
- $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
在經常訪問的頁面調用:
3.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程序員們在網站建設過程中有所幫助,如生成HTML靜態文件等。
在網站建設過程中,如果想讓您的網站有更好的性能,更人性化的功能,那就得學會更多的代碼程序技巧。如果您是PHP程序員,學習Javascript、Ajax、DIV+CSS、這些都是很有必要的。因為有些功能PHP可能不好去實現,但是要是使用Javascript、Ajax、DIV+CSS可能就會方便很多多了 |
|