2017-01-31 6 views
2

PHPでバッファリングするのはどうですか?私はこれについて多くのスレッドを読んだ。私が唯一の利点について読んだことがあるPHPでバッファリングがデフォルトで有効になっていないのはなぜですか?

How to fix “Headers already sent” error in PHP

Why use output buffering in PHP?

、バッファリングを使用しての欠点についての情報はありませんでした。

Ex。単独の出力バッファリングをオンにするWeb開発者

  • ための出力バッファリングの

    利点は、それがPHPプロセスとしてバラバラにブラウザに送信されていないので、それはダウンロードして、私たちのHTMLをレンダリングするのにかかる時間の量を減少させますHTML。

  • PHPの文字列を使ってできることは、HTMLページ全体を1つの変数として扱えるようになりました。
  • 「警告:ヘッダー情報を変更できません - すでに(出力)によって送信されたヘッダー」というCookieを設定している場合は、出力バッファリングがあなたの答えであることを知ってうれしいです。

出力バッファリングが唯一の利点を提供する場合は、なぜ私は、関数のob_start()、または他の方法で手動でそれをオンにする必要がありますか?

+0

ログインページをバッファしますか? –

+0

@JeroenHeier私が理解していない、DBのログイン名が入っているサイト全体にバーがある場合は、まずユーザーがログインしているかどうかを確認する必要があるので、start_sessionを実行して変数をチェックする必要があります。 「ログインページ」を定義してください。 //編集一方、ユーザーがログインしたい場合は、まず彼がログインしていないことを確認する必要があるので、login_pageでstart_session()を使用してください。 – Kentakis15

+1

短所:メモリー使用量。バッファースタックに対する制御の欠如。重大なエラーメッセージを「失う」可能性があります。あなたが出力をバッファリングしているならばあなたのコードに無限ループを注意してください。あなたの出力がtext/htmlではない場合、腐敗の危険性があります。ファイルのダウンロード)サイトのレスポンスが低下することがあります。 CLIスクリプトはバッファリングしたくないかもしれませんが、出力を直接表示することはできます –

答えて

0

おそらく主に意見に基づく質問です。これはスタックオーバーフローには表示されません。

一方、私は、この質問には短く明確な答えがあり、おそらく誰もが私に同意すると言ってしまう危険があります。

明示的 hereからジョンスキートを引用暗黙の

よりも常に優れているので、それがある

:一般

  • 暗黙的に

    :何かだから、あなたの質問に答えるためにあなたのために自動的に行われています。

  • Explicit:あなたは何を起こそうとしているかを示すためにソースコードに何かを書いています。

関連する問題