首頁  >  文章  >  後端開發  >  windows定時執行PHP

windows定時執行PHP

小云云
小云云原創
2018-03-10 10:28:183135瀏覽

 相信不少讀者(PHP愛好者)在工作、學習的過程中經常抱怨:在WIN如何讓PHP定時自動發信呢? ?如何讓MYSQL實現自動備份而無後顧之憂呢? ?如 果完全依靠手工進行當然也可以實現,但操作上似乎過於繁瑣了一點!別急,利用系統的任務規劃程式(Windows 98稱之為排程任務)可輕易解決此問題。這項功能往往被許多使用者忽略或未曾想到:)。

    所謂任務計劃是由電腦自動呼叫使用者事先設定好的應用程序,從而達到簡化使用者操作的目的。利用Windows 2000的任務計劃程序(相當與*NIX下的cron程序,這裡不再對其詳述),我們可以安排任何腳本、程序或文檔在最恰當的時候運行,從而滿足自己的需 要。下面以Windows 2000為例。

    具體來說,我們若需利用任務計劃程序自動運行則應執行以下步驟:

1.單擊“開始”按鈕,然後依次選擇“程序”→“附件” →「系統工具」→「任務計畫」(或是「設定」→「控制台」→「任務計畫」),啟動Windows 2000的任務計畫管理程式。

2.在“任務計劃”視窗中雙擊“新增任務計劃”圖標,啟動系統的“任務計劃嚮導”,然後單擊“下一步”按鈕,在給出的程式列表中選擇需要自動運行的應用程序,然後按一下“下一步”按鈕。
    設定適當的任務計畫名稱並選擇自動執行此任務的時間頻率(如每天、每星期、每月、一次性、每次啟動電腦時、每次登入時等),然後按一下「下一步”按鈕。
    此時系統將會要求使用者對程式運作的特定時間進行設置,如幾號、幾點鐘、哪幾個時間段才能運作等,我們只需根據自己的需求加以設定即可。

4.接下來系統將會要求使用者設定適當的使用者名稱及密碼(如圖5所示),以便系統今後能自動加以運作。

5.最後,我們只需點擊「完成」按鈕即可將相應任務新增至Windows 2000的任務規劃程式中,此後它就會自動「記住」這個任務,一旦系統時間及相關條件與用戶設定的計劃相符,它就會自動調用用戶所指定的應用程序,十分方便(每次啟動Windows 2000的時候,任務計劃程序都會自動啟動,並在後台運行,確保用戶的計劃能夠按時執行)。

    現在我們來測試剛才所建立的任務是否成功,滑鼠右鍵點選「php」程式圖示(如圖6所示),在彈出的選單裡面選擇「執行」。一般情況下程式圖示只要這樣 啟動運作就可以正常啟動。如果運行失敗可查看使用者和密碼是否設定正確,還有確定「Task Scheduler」服務是否已啟動,本人當初就是為了節省系統資源把它關掉了導致運行失敗,害我找了大半天。另外也可從「系統日誌」查看到底是什麼原 因造成運行失敗的。

    好了,講了這麼多任務計畫的應用,現在我們切入正題,以下將介紹兩個例子:

一、讓PHP定時運作吧!
1、   編輯如下程式碼,並儲存為test.php:

<?php 
 $fp = @fopen("test.txt", "a+"); 
 fwrite($fp, date("Y-m-d H:i:s") . " 让PHP定时运行吧!/n"); 
 fclose($fp); 
 ?>

2、新增一個任務計劃,在(如圖2所示)這一步驟輸入指令:D:/php4 /php.exe -q D:/php4/test.php

3、時間設定為每隔1分鐘執行一次,然後執行這個任務。

4.現在我們來看看d:/php4/test.txt檔案的內容時候是否成功。如果內容為如下圖所示,那麼恭喜你成功了。

2003-03-03 11:08:01 讓PHP定時運作吧!
2003-03-03 11:09:02 讓PHP定時運作吧!
2003-03-03 11:10:01 讓PHP定時運作吧!
2003-03-03 11:11:02 讓PHP定時運作吧!

二、讓MYSQL實現自動備份變成可能!
1、編輯以下程式碼,並儲存為backup.php,如果要壓縮可以拷貝一個rar.exe:

<?php 
 if ($argc != 2 || in_array($argv[1], array(&#39;--help&#39;, &#39;-?&#39;))) { 
 ?>
backup  Ver 0.01, for Win95/Win98/WinNT/Win2000/WinXP on i32 
 Copyright (C) 2000 ptker All rights reserved. 
 This is free software,and you are welcome to modify and redistribute it 
 under the GPL license 
 PHP Shell script for the backup MySQL database. 
 Usage: <?php echo $argv[0]; ?> <option> 
   <option> can be database name you would like to backup. 
   With the --help, or -? options, you can get this help and exit. 
 <?php 
 } else { 
     $dbname = $argv[1]; 
     $dump_tool = "c://mysql//bin//mysqldump"; 
     $rar_tool = "d://php4//rar"; 
     @exec("$dump_tool --opt -u user -ppassword $dbname > ./$dbname.sql"); 
     @exec("$rar_tool a -ag_yyyy_mm_dd_hh_mm $dbname.rar $dbname.sql"); 
     @unlink("$dbname.sql"); 
     echo "Backup complete!"; 
 } 
 ?>

2、添加一个任务计划,在(如图2所示)这一步输入命令:
   D:/php4/php.exe -q D:/php4/backup.php databasename
3、时间设置为每天运行一次,然后运行这个任务。
4、最后会在d:/php4/目录下生成一个以数据库名和当前时间组成的rar文件。
5、恭喜你!大功告成了!
    当然备份方式有很多种,读者可按照自己喜欢的去做!
以上是原著.结合本人实贱,补充说明如下:

1. 如果出现错误:
           在试着设置任务帐户信息时出现错误
   指定的错误是:
   0x80070005:拒绝访问
   您没有运行所请求的操作的权限

在上面'"4.接下来系统将会要求用户设置适当的用户名及密码(如图5所示),以便系统今后能自动加以运行".这里最好用"system"用户,密码可为空.如图:

windows定時執行PHP

这个system的权限非常之高,比你的administrator还要高,所以你在运行命令的时候千万不要乱来,这个可是什么提示都没有就会无条件执行的,这个权限下你kill核心进程都行.

2.上面'"'2、添加一个任务计划,在(如图2所示)这一步输入命令:D:/php4/php.exe -q D:/php4/test.php",正确形式应为  '"D:/php4/php.exe'" -q '"D:/php4/test.php'"  ,即路径要用双引号括住.

相关推荐:

window下如何实现定时执行php脚本

windows定时执行PHP的技巧 windows10 下载 windows优化大师 windows7 64位旗舰

Linux下crontab定时执行PHP程序的方法

以上是windows定時執行PHP的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn