2012-04-19 8 views
0

print_r()をライブ表示させることは可能ですか?ライブでは、スクリプトが実行されている間、私は意味します。私はスクリプトの終わりまでそれを表示させるのを待っていません。私は明確です。あなたの返信を先にありがとう。乾杯。 MarcPHP - print_r()liveの表示方法

+2

あなたやPHPやユーザエージェントがあなたの出力をバッファリングしない限り、これはデフォルトでどのように起こりますか? – Jon

+0

ええと、大きすぎる配列を印刷しないでください。数百万のエントリで時間がかかります。 – ewanm89

+0

..またはWebサーバー。 –

答えて

2

あなたはおそらく、ApacheのようなWebサーバーを通じてPHPを使用しています。

Webサーバーにはキャッシングが実装されており、データを大きなブロックで送信する傾向があります。
ブラウザにはキャッシングが実装されており、時折データを更新するだけで、ウェブサイトの読み込みが終了するとデータが更新されます。
は最後にPHPもキャッシュが組み込まれています。

HTTPは、人々が発明した「AJAX」理由ですとページがした後Javascriptが変更/ライブイベントをポーリングし、それはより多くの静的なページのようなものだ表示し、「生きる」のために作られていませんでしたロードされる。あなたは何ができるか

  1. はPHPからのデータを使用して、コマンドflush()
    ​​あなたがルックアップすることがありますと呼ばれるPHPの設定もありますを使用することができますウェブサーバに送信されていることを確認します。
  2. Webサーバーはgzip/mod_gzipを使用して出力を圧縮している可能性があります。その動作を無効にする必要があります。
    @apache_setenv('no-gzip', 1);
  3. </table>を含む単純な「テーブル」の中にデータを入れると、読み込み中にブラウザが表示される可能性が高くなります。彼らはバイトの一定量を受信した場合、一部のブラウザではデータのみが表示されます
    output_buffering = Off
    zlib.output_compression = Off
    あなたも、実行時にこれを行うことができます(@ini_set('zlib.output_compression', 0);
  4. :このためのiniファイルPHPのルック

  5. 私が正しいと思い出すなら、256バイトが役に立ちます。
    str_repeat(" ", 256);(または何か他)

私は、この手順で問題が解決することができますが、私の経験から、結果は完璧ではないことを追加したいと思います。 新しいブラウザとブラウザのバージョンによって、動作が異なる場合があります。

+0

このご了承いただきありがとうございます – Marc

関連する問題