本篇主要介紹PHP定時執行的方法,有興趣的朋友參考下,希望對大家有幫助。
PHP定時執行的三種方式實作
1、windows 的排程任務
2、linux的腳本程序
3、讓web瀏覽器定時刷新
#具體實作
1、windows排程任務
PHP很少在win伺服器上跑,具體實作也不再深究,看網路上實作的原理大概是寫bat腳本,然後讓window任務加入執行這個bat腳本。
2、linux 的腳本實作這裡主要使用到crontab這個指令,
使用方式:
程式碼如下:
crontab filecrontab [ -u user ] [ -u user ] { -l | -r | -e }
說明:
crontab是用來讓使用者在固定時間或固定間隔執行程式之用
使用crontab寫shell腳本,然後讓PHP呼叫shell,這個是利用linux的特性,應該還不包括PHP自身語言的特性
3、PHP實作定時執行排程任務使用php讓瀏覽器刷新需要解決幾個問題
PHP腳本執行時間限制,預設的是30m 解決方法:set_time_limit();或修改PHP.ini 設定max_execution_time時間(不建議)
如果客戶端瀏覽器關閉,程式可能就被迫終止,解決方案:ignore_user_abort即使關閉頁面依然正常執行
如果程式一直執行很有可能會消耗大量的資源,解決辦法使用sleep使用程式休眠一會,然後在執行
PHP定時執行的程式碼:
<?php ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(3000);// 通过set_time_limit(0)可以让程序无限制的执行下去 $interval=5;// 每隔5s运行 //方法1--死循环 do{ echo '测试'.time().'<br/>'; sleep($interval);// 等待5s }while(true); //方法2---sleep 定时执行 require_once './curlClass.php';//引入文件 $curl = new httpCurl();//实例化 $stime = $curl->getmicrotime(); for($i=0;$i<=10;$i++){ echo '测试'.time().'<br/>'; sleep($interval);// 等待5s } ob_flush(); flush(); $etime = $curl->getmicrotime(); echo '<hr>'; echo round(($etime-stime),4);//程序执行时间
測試的時候發現這個效率並不是很高。
總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。
相關推薦:
以上是PHP定時執行的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!