私が行っているプロジェクトの PHP の flush() 関数に慣れようとしています。自分でいくつかのスクリプトを作成し、所有する Web スペースにアップロードしました。しかし、それらのどれも機能していないようでした。PHP.netのコメントから以下のものを選んで試しました:
<?php
header( 'Content-type: text/html; charset=utf-8' );
echo 'Begin ...<br />';
for( $i = 0 ; $i < 10 ; $i++ )
{
echo $i . '<br />';
flush();
sleep(1);
}
echo 'End ...<br />';
どうやらスクリプトはまだ機能していませんでした。
次に、次のようなコメントを読みました。
ob_flush() と flush() を呼び出してもバッファがフラッシュされない場合は、一部のウイルス対策ソフトウェア (この場合は Panda) が、ブラウザに送信する前にページの読み込みが完了するまでバッファを保持している可能性があります。
そのため、ウイルス対策ソフトウェアがインストールされていない Linux (Ubuntu 12.04) を使用しているマシンで Web ページを要求することにしました。そしてそれは完璧に機能しました!
これがウイルス対策ソフトウェアと関係があるかどうかはわかりませんか?または、flush() が意図した目的を達成するのを妨げている Windows の他の奇妙なメカニズムです。私は両方のマシン (Firefox 14.0.1) で同じブラウザーを使用しているので、そうであるとは思えません。
したがって、私の本当の質問は次のとおりだと思います: ウイルス対策ソフトウェアが flush() が意図した目的を達成するのを妨げていることについて何か知っている人はいますか? もしそうなら、それを回避する方法はありますか?
編集:明確にするために、これはサーバー側ではないことを確信しています。Linuxを実行している外部Webサーバーがあり、これらのスクリプトをLinuxまたはWindowsマシンでローカルにホストしていません。
EDIT2:Linuxラップトップで友人の家でこれを試してみましたが、奇妙なことに、フラッシュコードも彼らの家では機能しませんでした(代わりに、ロードに時間がかかり、すべてが私の家のこのラップトップで動作するので奇妙です.ルーターがflush()関数の動作と関係があるかどうかはわかりません(Web上でこれについて何も見つけることができません).私が考えることができる唯一のことは、それを妨げる可能性があります。
それ以外の場合、私は自分でこれを回避しようとして進歩を遂げていません。これは間違いなくサーバー側とは関係ありません。私が見つけたように見えるほとんどの情報は、flush()関数が機能していません:/
偶然にも、家でノートン (AVG の代わりに) を実行している PC でこれを試してみましたが、うまくいきましたが、100% ではありませんでした。