2017-04-27 4 views

答えて

4

オンラインPHPはシェルのように動作していると思いますので、コードが実行されるときに出力を見ることができます。

Xampp仮想マシンでは、PHPスクリプトが完全に実行されてからブラウザに配信されるまで待機しているため、sleep()コマンドは何も実行していないように見えます。

スクリプトをコマンドラインインターフェイスで実行すると、期待どおりの内容が表示されます。

0

PHPコマンドラインとHTTPリクエストの違いを理解しておく必要があります。

phpコマンドラインを実行すると、現実的な出力が得られます。

your_root_folder$ php your_script.php 

しかし、あなたは、Apacheは、スクリプト全体を完全に実行するために待っているHTTPリクエストによってPHPスクリプトを実行し、クライアントへの出力を提供します。あなたの質問を1として

http://localhost/your_script.php 

、オンラインPHPエディタは彼らのPHPサーバーに自分の書いたコードを掲示され、あなたに出力を与える意志の完全な実行サーバーの後に自分のサーバーでコードを実行します。

0

あなたはすぐにブラウザに出力する必要がある場合、あなたはすなわちob_end_flush()flush()、使用することができ、既に存在している答えに追加:

for ($i=1; $i<=4; $i++) { 
    echo $i ; 
} 
ob_end_flush(); 
flush(); 
sleep(2) ; 
for ($i=5; $i<=10; $i++) { 
    echo $i ; 
} 
0

あなたはあなたのサーバーへの呼び出しを行うと、PHPスクリプトが実行されます これが完全に完了すると、結果はブラウザに返されます。

あなたは寝ることができます。

<?php 
header('Content-type: text/html; charset=utf-8'); 
header("Cache-Control: no-cache, must-revalidate"); 
header ("Pragma: no-cache"); 
set_time_limit(0); 
ob_implicit_flush(1); 

for ($i=1; $i<=4; $i++) { 
    echo $i ; 
} 
for ($i = 0; $i < 2; $i++) { 
    sleep(2); 
    if(ob_get_level()>0) 
     ob_end_flush(); 
} 
for ($i=5; $i<=10; $i++) { 
    echo $i ; 
} 
?> 
関連する問題