任務計劃在我們的日常工作開發中,有很大用處、有時項目需要大批量的資料更新插入資料庫中,那麼我們為了能夠節約資源,需要定時時間段進行自動計算,為此,我們就需要php計劃任務來實現,那麼我們今天就給大家介紹php實現Windows任務計劃定時執行!
此外在網上找了這類似問題的解決辦法後,還可用PHP的ignore_user_abort()函數,這個函數還沒使用過,PHP官網是這樣介紹的
int ignore_user_abort ([ string $value ] )
設定用戶端中斷連線時是否中斷指令碼的執行 ,PHP以命令列指令碼執行時,當指令碼終端結束,指令碼不會被立即中止,除非設定 value 為 TRUE,否則指令碼輸出任一字元時會被中止。
個人理解就是不通過瀏覽器來執行,而是通過命令列方式執行的情況下,此函數的代碼塊繼續執行。在這篇博文中有具體地通過此函數的實現過程。
下面是一個測試用的例子。
windows批次檔
建立文字文件,編寫如下代碼,儲存為.bat檔案。
E:"E:\PHP\wamp\bin\php\php5.5.12\php.exe" -f "E:\PHP\wamp\www\write.php"
PHP運行模式
平時執行php代碼,是通過瀏覽器向伺服器請求的方式執行的,這種運行模式叫模組模式。 模組模式是以mod_php5模組的形式整合,此時mod_php5模組的作用是接收Apache傳遞過來的PHP檔案請求,並處理這些請求,然後將處理後的結果返回給Apache。如果我們在Apache啟動前在其設定檔中配置好了PHP模組(mod_php5), PHP模組通過註冊apache2的ap_hook_post_config掛鈎,在Apache啟動的時候啟動此模組以接受PHP檔案的請求。
而我們用php.exe執行時, 便是 CLI模式,這篇博文對PHP四種運行模式進行了詳細闡述。
php.exe
PHP命令列執行程式php.exe的功能非常強大,在windows環境下配置系統變數path的值可以直接在dos視窗介面直接運行php指令檔,這篇文章有具體配置方法。
這裡的php.exe是php安裝目錄下三個和php相關的exe檔案中的一個,php-cgi.exe、php-win.exe
php-cgi.exe提供來作為CGI使用的,通常用來在windows環境下通過cgi方式解析php指令碼,常用於在iis下運行php網站,區別是在檔案輸出所有內容之前,會自動輸出一個下面的HTTP頭
X-Powered-By: PHP/5.2.5Content-type: text/html
php-win.exe也可以執行PHP檔案,區別是大開啟控制台,不顯示輸出內容。可以用來編寫無需顯示介面的檔案處理、網路服務等程式。
PHP執行代碼
<?php$fp = @fopen("E:/PHP/wamp/www/test.txt", "a+");fwrite($fp, "自動播報時間:\n" . date("Y-m-d H:i:s"));fclose($fp);
這裡的檔案路徑一定要是絕對路徑,因為沒有經過apache或iis這種伺服器,除了一些基於伺服器的變數不能使用的,如$_SERVER等,還有很有可能發生各種無法預計的錯誤。
建立任務計劃
這個百度一下就能出很多,我測試的用的是windows7.
開始–》附件–》系統工具–》工作排程器
雙擊建立任務
建立名稱和設定執行許可權
設定好開始時間和重複任務間隔時間
選擇寫好的指令碼路徑
到這兒就已經建立好工作排程器了
下面是執行的效果
總結:
windows任務計劃的執行,相信很多小夥伴都知道如何使用php去實現了,希望對你工作有所協助!
相關推薦:
php計劃任務的範例程式碼分享
php如何?定時執行計畫任務?
php實現計劃任務的原理分析