解決済み

php ob_flushが全く動作しない

  • すぐに回答を!
  • 質問No.7336751
  • 閲覧数1388
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 67% (36/53)

echo "<p>処理を開始します。しばらくお待ちください…</p>\n";
echo str_pad(" ",4096)."\n";
ob_end_flush();
ob_start("mb_output_handler");
for ( $i = 1; $i <= 3; $i++ ) {
sleep( 2 ); // 時間がかかる処理
echo "<p>". $i * 10 ."件の処理を完了しました</p>\n";
ob_flush();
flush();
}
echo "処理が完了しました\n";

サンプルのプログラムを記述しておきます。

重要な点として、
1.以前は正常に動作していました。
2.サンプル実行で実際の動きを見せるようなっている他サイトも動作しません。
  それらは、おそらく、正常に動作しているのでしょうが・・・・。

このプログラムを実行しているサーバーの問題ではない気がします。
なぜなら、他のサンプルサイトの実行結果も、正常に動作しないからです。
firefox , IE8 どちらも、全ての処理が終わってから、まとめて表示されます。

あらゆる対処方を施しましたが、結果は変わりません。

これは、私のパソコンがおかしいのでしょうか?
パソコン側で設定する事など出来るのでしょうか?

原因や対処方が分かる方がいらっしゃいましたらご教示お願い致します。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 51% (3827/7415)

ブラウザの仕様の問題でしょうね。
かならずしも受け取ったデータをすぐに表示するのが効率的というわけでは
ないので、ブラウザ側でためてから出力しているのかもしれません

ajaxなど非同期処理でデータを抽出する方が現実的だと思いますよ
お礼コメント
mintohime

お礼率 67% (36/53)

ありがとうございます。
やはり、ブラウザの仕様なのでしょうか。
Firefox、IE8ともに、ダメって事ですね。
至急対応したい処理でしたので、とりあえずは他の方法で対処する事にしました。
ですので、ajaxはこれから勉強して今後取り入れたいと思います。
ありがとうございました。
投稿日時 - 2012-03-03 22:07:35
Be MORE 7・12 OK-チップでイイコトはじまる

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 44% (126/282)

http://www.php.net/manual/ja/function.flush.php

より

PHP および PHP が使っている (CGI, Web サーバなどの) バックエンドの書き込みバッファをフラッシュします。 それまでのすべての出力をユーザのブラウザに対して出力しようと試みますが、 注意すべき点があります。

flush() はウェブサーバのバッファリング手法を上書きすることはできません。 また、クライアント側のブラウザでのバッファリングにはなんの影響も及ぼしません。 PHP のユーザレベルでの出力バッファリングの仕組みにも影響を及ぼしません。 つまり、もし ob 出力バッファを使用しているのなら ob_flush() と flush() の両方をコールしなければなりません。

いくつかのサーバ、特に Win32 上ではスクリプトからの出力をブラウザに 結果を送信する前にスクリプトが終了するまでバッファに溜めることがあります。

mod_gzip のような Apache 用のサーバモジュールはそれ自体がバッファリングを行います。 そのため、flush() をコールしても 即時にデータをクライアントに送信しないという結果につながります。 ”
お礼コメント
mintohime

お礼率 67% (36/53)

ありがとうございます。
上記ページに従って、何パターンも作成しました、また、mod_gzipの件も対処しましたが
結果は同じでした。
利用しているサーバーのみ、正常に動作しないなら、理解できますが、
他の方がサンプル実行例として記載している、沢山のサイトでも
正常に動作しないという点で、私のパソコンだけが何らかの原因でそうなっているのかと
思った次第です。
結果、違うやり方で、処理する事にしました。
ありがとうございました。
投稿日時 - 2012-03-03 22:05:32
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ