2011-06-19 26 views
4

我有一個php文件test.php。在5秒後,我想要echoprint「成功」,在瀏覽器調用或加載或打開php文件後不久。順便說一句,有時候我可能想在特定的時間間隔後執行/初始化一些函數。設置基於PHP定時器的功能

任何人都可以告訴/建議我如何使用PHP做一個面向時間的任務,如5秒後打印一條消息?

在此先感謝..

回答

5

您可中斷使用sleep()腳本的執行。如果你想分一秒的精度,可以使用usleep()

# wait half a second (500ms) 
usleep(500000); 
echo 'Success'; 
4

它通常不是一個好主意,在PHP中做到這一點。 PHP腳本應該儘可能快地運行。延遲PHP腳本

  • 將使用更多的服務器資源比必要
  • 能滿足PHP超時限制,在服務器上或在瀏覽器中的PHP執行。

最好的選擇是JavaScript和其setTimeout()

setTimeout(function() { alert ("Done!"); }, 5000); 

(或者,而不是alert(),你可以指示JavaScript來顯示一個對話框或類似)。

如果你不想依賴於JavaScript,您可以考慮META redirect將用戶帶到包含「完成」的頁面。信息。

<meta http-equiv="refresh" content="5; url=http://example.com/"> 
0

您可以使用jQuery計時器延遲隊列中的後續項目的執行

http://api.jquery.com/delay/

http://www.w3schools.com/js/js_timing.asp

<html> 
<head> 
<script type="text/javascript"> 
function timeMsg() 
{ 
var t=setTimeout("alertMsg()",3000); 
} 
function alertMsg() 
{ 
alert("Hello"); 
} 
</script> 
</head> 

<body> 
<form> 
<input type="button" value="Display alert box in 3 seconds" 
onclick="timeMsg()" /> 
</form> 
</body> 
</html> 
+1

不要傳遞字符串setTimeout - http://w3fools.com/ – mplungjan

0
while(1){ 
    sleep($time); 
    youfunction(); 
}