誰かがこれらの2つのファイルを保存して実行して、「ob_flush()[ref.outcontrol]:バッファをフラッシュできませんでした。私は周りにグーグルを試みて、それは私がob_start()を使用する必要があると言います。しかし、私はそれを行うときに行ごとにプリントアウトするのではなく、完了したらFORループからオブジェクト全体を返します。私は..PHPエラー:ob_flush()[ref.outcontrol]:バッファのフラッシュに失敗しました。フラッシュするバッファがありません
test_process.php
// This script will write numbers from 1 to 100 into file
// And sends continuously info to user
$fp = fopen('/tmp/output.txt', 'w') or die('Failed to open');
set_time_limit(120);
ignore_user_abort(true);
for($i = 0; $i < 100; $i++){
echo "<script type=\"text/javascript\">parent.document.getElementById('foo').innerHTML += 'Line $i<br />';</script>";
echo str_repeat(' ', 2048);
flush();
ob_flush();
sleep(1);
fwrite($fp, "$i\n");
}
fclose($fp);
main.htmlとのob_startある
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript" charset="utf-8"></script>
<style type="text/css" media="screen">
.msg{ background:#aaa;padding:.2em; border-bottom:1px #000 solid}
.new{ background-color:#3B9957;}
.error{ background-color:#992E36;}
</style>
</head>
<body>
<iframe id="loadarea" width="1024px" height="768px"></iframe><br />
<script>
function helper() {
document.getElementById('loadarea').src = 'test_process.php';
}
function kill() {
document.getElementById('loadarea').src = '';
}
</script>
<input type="button" onclick="helper()" value="Start">
<input type="button" onclick="kill()" value="Stop">
<div id="foo"></div>
</body>
</html>
出力バッファについてphp.iniのあなたの設定を確認し、自動にon_startするために有効にすることができます。有効になっているかどうかを確認するもう1つの方法は、開始時にob_end_flush()を使用してすべてのフラッシュを削除する方法です。 また、 'phpinfo();'で確認できます。 – dvicino
お返事ありがとうございます。私は出力バッファリングを有効にしようとしましたが、それは、行単位ではなくループオブジェクト全体を返します。 – ThreaT