2011-06-19 12 views
4

私はPHPファイルtest.phpを持っています。 echoまたはprint 5秒後に "成功"したいと思います。これは、phpファイルが呼び出された直後、またはブラウザによって読み込まれたり開いたりした直後です。 Btw、時々、特定の時間間隔の後にいくつかの関数を実行/初期化したいかもしれません。PHPタイマーベースの機能を設定する

5秒後にメッセージを印刷するなど、PHPを使用して時間軸のタスクを作成するにはどうすればいいですか?

事前に感謝..

答えて

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

あなたがする必要がある場合、あなたはこれを使用することができますキュー

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(); 
} 
0

に、後続の項目の実行を遅らせるためにjQueryのタイマーを使用することができます:http://php.net/manual/en/function.register-tick-function.phpパフォーマンス。

呼び出された関数では、十分な時間が経過したかどうかをチェックし、そうであれば、ティック関数の登録を解除し、適切なコードを実行します。

関連する問題