2012-04-27 9 views
0

文字列を一定回数繰り返してWAMPサーバーに簡単なwhileループを実装しようとしています。ただし、WAMP PHP設定で出力バッファリングをオフにしても、出力全体が一度に発生します。WAMPとflush()

バージョン1

$i = 0; 
while ($i < 5) 
{ 
print ("This is an example of a while loop.<br/>"); 
flush(); 
sleep(1); 
$i++; 

} 

バージョン2

$i = 0; 
while ($i < 5) 
{ 
print ("This is an example of a while loop.<br/>"); 
ob_start(); 
ob_flush(); 
flush(); 
sleep(1); 
$i++; 

} 

はどちらのバージョンでは、文字列に私が1秒間隔で時間に、すなわち、1を意図しています方法を出力します。どんな助けでも大歓迎です。

+0

それをレンダリングするときには、説明を読む@dmubu ...ブラウザ次第 – Ryan

+0

だここhttp://www.php.net/manual/en/function.flush.php – Sampson

+0

も読みます。http: //stackoverflow.com/a/14922225/1454514 –

答えて

0

私はいつもWAMPで問題を抱えていましたが、結局はWAMPで壊れているという結論に達しました。私が持っているサーバーの設定に関係なく、WAMPがパッケージ化されている方法については何かがありますが、それはうまくいきません。

これを動作させる唯一の方法は、XAMPPを使用する方法、または独自のサーバーをインストールして構成する方法です。

+0

php.iniで 'output_buffering'を無効にするまで、私は必死でした。すべてがflush()でうまくいきます。 –

0

私はこの問題を抱えており、以下のコードを組み込むことで解決できました。

// Necessary Settings and stuff for output buffering to work right 
apache_setenv('no-gzip', 1); 
ini_set('zlib.output_compression', 0); 
ini_set('implicit_flush', 1); 
ini_set('output_buffering', "off"); 

// Start a new output buffer and send some blank data to trick browsers 
ob_start(); 
echo str_repeat(" ", 4096); 

for ($i=0; $i < 10; $i++) { 
    echo "<div>Echo Something...</div>\n"; 

    // Call both ob_flush and flush functions 
    ob_flush(); 
    flush(); 
} 
0

ジャスティンの回避策でもそれを行うことができない人のために。 wamp x64でテストされました。

// Necessary Settings and stuff for output buffering to work right 
apache_setenv('no-gzip', 1); 
ini_set('zlib.output_compression', 0); 
ini_set('implicit_flush', 1); 
ini_set('output_buffering', "off"); 

// Start a new output buffer and send some blank data to trick browsers 
ob_start(); 
echo str_repeat(" ", 4096); 
ob_end_flush(); //addition 
ob_flush(); 
flush(); 

for ($i=0; $i < 10; $i++) { 
    ob_start(); //addition 
    echo "<div>Echo Something...</div>\n"; 

    ob_end_flush(); //addition 
    ob_flush(); 
    flush(); 
}