php定時函數
用linux的定時任務來調度php程序,具體設置方法請網路 linux crontab
② php定時執行任務,給個思路
linux 執行腳本得這樣,
把形成圖的代碼,單獨放一個頁面
③ php定時執行任務怎麼寫
藉助crontab來編寫;
編寫定時執行腳本(單獨的一個php文件,或者某個方法);
配置crontab,指定執行路徑地址;
啟動crontab服務即可。
④ 請問如何用PHP語言讓系統定時執行一個任務
如果能使用主機上的計劃任務就更好。
如果不能,就通過寫一個全局計時器,通過用戶訪問PHP頁面來觸發。
這是根據B/S軟體模型來決定的,PHP代碼一般不會主動執行,只會被動地等待用戶訪問後執行,所以你可以每次被訪問時檢查是否到達設定的時間點,如果到了就執行保存事件一次,並把全局的另外一個條件(如將結果保存在磁碟上,下次檢查是否有這個文件)設為真,下次就不會再執行。
純手打,僅提供一個思路~
⑤ 怎樣定時執行某個PHP腳本文件,帶參數,沒有伺服器許可權,虛擬主機用戶 - 技術問答
1樓的,要是每天的2點鍾定時執行某個腳本。又該怎麼做呢??ignore_user_abort。。。。我要定時執行某個文件,而不是執行ignore_user_abort這個函數所在的那個php腳本
⑥ 如何使用純PHP實現定時器任務
我用PHP寫了下面的延時代碼,主要用來作為BAT文件調用進行倒計時:
<?php
//批處理延時工具
if($argc==2){
set_time_limit(0);
$v=$argv[1]+0;
while($v>0){
echo" 請等待".sec2str($v)."秒。。。";
$n=$v>600?600:($v>60?60:($v>10?10:1));
sleep($v>$n?$n:$v);
$v-=$n;
}
$v=$argv[1]+0;
echo" ".sec2str($v)."秒延時完畢。 ";
}
elseecho"使用方法: sleep.php<演示秒數>";
functionsec2str($v){
$s='';
if($v>3600){$s.=floor($v/3600).':';$v%=3600;}
if($s<>''||$v>60){$s.=floor($v/60).':';$v%=60;}
$s.=$v;
return$s;
}
?>
⑦ php能不能定時執行某個程序功能
ignore_user_abort(true);
sleep(秒);
//可以用這個函數,但不建議你這樣做,如果程序有什麼問題,伺服器很容易宕機!
這個函數就是關閉瀏覽器後,程序仍然繼續執行,意思就是你想關都關不掉了,只能重啟伺服器
⑧ php定時執行
php不行
一般是用linux的駐留程序或windows的計劃任務。
你要用PHP的前提是你的網站凌晨2點的時候會有人訪問,因為PHP程序只有瀏覽器訪問才能激活。而且你是要出報表,處理起來會非常慢,客戶端瀏覽器中途中斷,你的PHP程序也中斷,生成的報表就不完整。
所以,暫時沒有好的方法去用PHP做這個事情
⑨ php如何製作類似setInterval函數
PHP定時執行的三種方式實現
1、windows 的計劃任務
2、linux的腳本程序
3、讓web瀏覽器定時刷新
具體實現
1、windows計劃任務
PHP很少在win伺服器上跑,具體實現也不再深究,看網上實現的原理大概是寫bat腳本,然後讓window任務添加執行這個bat腳本。
2、linux 的腳本實現
這里主要使用到crontab這個命令,
使用方式 :
crontabfilecrontab[-uuser][-uuser]{-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(0);//通過set_time_limit(0)可以讓程序無限制的執行下去
$interval=60*30;//每隔半小時運行
do{
//這里是你要執行的代碼
sleep($interval);
}while(true);