2012-03-01 17 views
2

これはうまく動作しているにもかかわらず、うまく動作しないようです。ここでXAMPPでのPHP出力のバッファリング

は私がやったことすべてです:

  1. にoutput_buffering = 4096
  2. zlib.output_compression =オフ(ob_implicit_flushを使用してみました
  3. )。
  4. ob_flush();を使用して試しました。 iniファイルにバッファサイズを削減
  5. には、以下の

をにoutput_buffering を設定すると、私は仕事に取得しようとしているコード(基本的に出力ラインごとに1秒)ですが、私は」 15秒後に全出力を得る。 のob_start()ob_flush()方法使用して

<?php 
ob_implicit_flush(); 

for($i=0;$i<=15;$i++) 
{ 
    print($i."<BR />"); 
    sleep(1); 
} 

ob_implicit_flush()

<?php 
ob_start(); 
for($i=0;$i<=15;$i++) 
{ 
    print($i."<BR />"); 
    ob_flush(); 
} 

は、私が行方不明です、他のPHPの設定があります?助けてください。

EDIT:このSO問題のOPで例を使用して、それが動作します:PHP buffer why \r\n

私はバッファをオーバーフローする文字列を生成するにおけるSTR_Repeatを()しなければならなかったことがわかります。なぜこれはPHPのマニュアルに記載されていないのですか?これは本当に手続きですか?

+0

このコードは不完全なようです。私はサンプルの文脈で 'ob_' *関数群の呼び出しを見ることができません。 – Treffynnon

+0

申し訳ありませんが、今更新しました。 –

答えて

1

PHPは要求に対して1つの応答を返します。そのコードでsleep()コールがある場合、応答全体はそれらのコールを待機します。 printの間に1秒の睡眠を入れても、PHPはブラウザに応答を返さない。

PHPを対話型コンソールとして使用している場合、これは予想通りに動作し、動作するはずです。

関連する問題