問題は次のとおりです。あなたのコードは少なくとも ( に必要な時間を考慮せずにdoMyThings()
) 300 秒続くでしょう。ほとんどの PHP 環境では、デフォルトのスクリプト実行時間が約 60 秒に設定されており、スクリプトは停止し、何も出力されません。
次に (スクリプトの実行時間が長く設定されている場合は、スクリプトを長時間実行できるようにします)、スクリプトは終了するまで (つまり、約 300 秒) 実行する必要があり、その後、データが出力ストリームに書き込まれます。それまでは、出力は表示されません。
これら 2 つの問題を回避するには、次のコードを参照してください。
<?php
// If allowed, unlimited script execution time
set_time_limit(0);
// End output buffering
ob_end_flush();
include_once("connect_to_mysql.php");
$max=300;
// End output buffering IE and Safari Workaround
// They will only display the webpage if it's completely loaded or
// at least 5000 bytes have been "printed".
for($i=0;$i<5000;$i++)
{
echo ' ';
}
while($max > 0)
{
sleep(1);
doMyThings();
$max--;
// Manual output buffering
ob_flush();
flush();
}
?>
たぶん、この投稿もあなたに興味があるかもしれません:出力 exec() ping 結果を徐々に