本文目錄一覽:
如何使用純PHP實現定時器任務
我用PHP寫了下面的延時代碼,主要用來作為BAT文件調用進行倒計時:
?php
//批處理延時工具
if($argc==2){
set_time_limit(0);
$v=$argv[1]+0;
while($v0){
echo"\r請等待".sec2str($v)."秒。。。";
$n=$v600?600:($v60?60:($v10?10:1));
sleep($v$n?$n:$v);
$v-=$n;
}
$v=$argv[1]+0;
echo"\r".sec2str($v)."秒延時完畢。\n";
}
elseecho"使用方法:\nsleep.php演示秒數";
functionsec2str($v){
$s='';
if($v3600){$s.=floor($v/3600).':';$v%=3600;}
if($s''||$v60){$s.=floor($v/60).':';$v%=60;}
$s.=$v;
return$s;
}
?
用php怎麼做定時器
你寫好一個PHP腳本,就是用來檢測工作計劃並發送email的,用伺服器的計劃任務跑這個腳本,
或者用js的settimeout定時請求也行。
PHP實現定時任務的幾種方式
一. 簡單
?php
ignore_user_abort();//關掉瀏覽器,PHP腳本也可以繼續執行.
set_time_limit(0);// 通過set_time_limit(0)可以讓程序無限制的執行下去
ini_set('memory_limit','512M'); // 設置內存限制
$interval=60*30;// 每隔半小時運行
do{
//ToDo
sleep($interval);// 等待5分鐘
}
while(true);
二. 簡單 可控型
config.php
?php
return 1;
?
cron.php
ignore_user_abort();//關掉瀏覽器,PHP腳本也可以繼續執行.
set_time_limit(0);// 通過set_time_limit(0)可以讓程序無限制的執行下去
$interval=60*30;// 每隔半小時運行
do{
$run = include 'config.php';
if(!$run) die('process abort');
//ToDo
sleep($interval);// 等待5分鐘
}
while(true);
三. 簡單 改進型
?php
$time=15;
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
/*
function
*/
sleep($time);
file_get_contents($url);
?
PHP怎麼製作計時器
計時器的運用在網頁製作中很普遍,其實計時器有很多做法,PHP加JS、JS加AJAX也可以控制實現。不是PHP可以單獨實現的,因為PHP是實現服務端的語言,沒有辦法去控制。以下實例就是製作計時器的代碼:
SCRIPTlanguage=JAVASCRIPT
vartimerID=null;
vartimerRunning=false;
functionstopclock()
{
if(timerRunning)
clearTimeout(timerID);
timerRunning=false;
}
functionstartclock()
{
stopclock();
showtime();
}
functionshowtime()
{
varnow=newDate();
varhours=now.getHours();
varminutes=now.getMinutes();
varseconds=now.getSeconds()
vartimeValue=""+hours;
//定時初始化資料庫的代碼:
timeValue+=((minutes10)?":0":":")+minutes
timeValue+=((seconds10)?":0":":")+seconds
document.Calc.time.value=timeValue;
//youcouldreplacetheabovewiththis
//andhaveaclockonthestatusbar:
//window.status=timeValue;
timerID=setTimeout("showtime()",1000);
timerRunning=true;
return'';
}/script
客服端PHP+HTML代碼:
html
head
METAHTTP-EQUIV="Refresh"Content="1;URL=test.php"
/head
body
?
echodate("Y年m月d日H時i分s秒");
?
/body
/html
原創文章,作者:IKFL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/142500.html