2011-01-30 5 views
0

私は2台の異なるサーバーと、このようなスクリプトがあります。forループに入る前にPHPがHTMLコードを表示しないのはなぜですか?

echo "<div style=\"some style\">whatever</div>"; 
for($i=0;$i<150000;$i++) 
{ ... } 

は今、私は私の最初のサーバー上のPHPスクリプトは私に直接表示されることを実現し、その後、forループを経由開始何でも。 2番目のサーバはdivを表示しませんが、直接ループから始まります。しかし、最初にHTMLコードを表示してスクリプトの残りの部分を実行するには、スクリプトが必要です。

これを変更する可能性はありますか?

ありがとうございました!

+1

のためにあなたのphp.iniをチェック! –

+0

サーバからの出力方法私は、PHPスクリプトが何かをしている間に "待ってください..."というメッセージを表示する必要がありますが、スクリプトが終了した後にサーバーにこれが表示されます。 – phpheini

答えて

1

あなたはウェブサイトにアクセスして何が起こったのですか: サーバーへのブラウザ、ちょっと、私はこのファイルを持っていますか? サーバーが要求を処理し、ファイルを検索します サーバー通知、ちょっと、PHPスクリプトを取得し、解析できます。 スクリプトは無限ループに入ります。

スクリプトを終了してブラウザに戻す必要があるため、出力は空になります。

+0

はい、そうです。だから、私はどのように達成することができます、ユーザーは "待ってください..."というメッセージが表示されますが、PHPスクリプトは何かをしていますか? – phpheini

+0

@phpheiniさて、あなたは正確に何をしたいのか分かりませんが、javascriptとAJAXでこれを行うことができます。javascriptを使って通常のページを読み込みます。このスクリプトは、このスクリプトを読み込みます。あなたが他のページのユーザーに何かを表示することができます。私が明確でない場合はxu - jQueryは、javascalptを使用して動的にページを読み込むためのすばらしいラッパーです –

3

-loopの前にechoの直後にflushingを試してください。

+0

私の推測は 'output_buffering'です。設定ディレクティブは各サーバで異なります。もしそうなら、この答えはそれを解決するはずです。 – Phil

+0

問題は、私はphp.iniにアクセスできませんでしたが、htaccessファイルにphp_value output_buffering "0"を書き込もうとしました。その結果、サーバーは何も反応せず、典型的なエラーメッセージ(500 Internal Server Error)を示しました。私は可能な組み合わせで、ob_flush()、flush()、ob_start()、ob_end_flush()を試しました。しかし何も変わりません。 – phpheini

5

は、あなたはそれがブラウザによってレンダリングされていますどのように参照するか、どのようにそれが実際にサーバを経由して出力されていますされていますoutput buffering

関連する問題