web-dev-qa-db-ja.com

一部のスクリプトで終了PHPタグ、 '?>'が省略されているのはなぜですか?

一部のスクリプトでは、終了タグ?>スクリプト用。なぜですか、これも行う必要がありますか?

(彼らはそれを忘れていなかったと確信しています。)

190
Naughty.Coder

まあ、終了タグを省略することは、ファイルの最後にある空白やその他の文字を避けるための1つの解決策にすぎません。たとえば、終了タグの後ろに誤って追加された文字は、後でヘッダー情報を変更しようとしたときにエラーをトリガーします。

終了タグを削除することは、多くのコーディングガイドラインを参照する「良い方法」です。

175
dhh

から PHP:命令分離

ファイルの最後にあるPHPブロックの終了タグはオプションです。また、場合によっては、include()またはrequire()を使用するときに省略しておくと便利です。ので、ファイルの最後に不要な空白が発生することはなく、後で応答にヘッダーを追加することもできます。また、出力バッファリングを使用し、追加された不要な空白を末尾に表示したくない場合にも便利です。インクルードファイルによって生成されたパーツ。

84
Metalshark

php.net on PHP tags

ファイルが純粋なPHPコードの場合、ファイルの最後にあるPHP終了タグを省略することをお勧めします。これにより、誤った空白や改行がPHP終了タグの後に追加されます。これは、プログラマからの出力を送信する意思がない場合にPHPが出力バッファリングを開始するため、望ましくない効果を引き起こす可能性がありますスクリプトをポイントします。

33
brismuth

終了タグの後に空白があり、ヘッダーが機能しなくなるリスクを回避するためです。

もちろん、これはPHPのみのファイルにも当てはまります。

15
Soufiane Hassou

CodeIgniter Framework は、終了タグを省略することを提案します

「...は、不要な出力を引き起こす可能性があります、PHPエラーまたは空白ページ」。

読むことができます こちら

7
beawolf

PHP= output_bufferingフラグphp.ini。出力バッファリングが有効になっている場合、HTMLの出力後にHTTPヘッダーとCookieを設定できます。これは、返されたコードがすぐにブラウザーに送信されないためです。

この文脈では例はまだ有効ですか?

5
danidacar
  1. 不要な空白/空白ページが表示されます。 HTTPヘッダーは、これらの不要な空白に対しては機能しません。
  2. Most JavaScriptインジェクションはファイルの最後で行われます。エラーメッセージが表示され、コードが破損し、挿入されたJavaScriptコードは実行されません。
0
Nafis Ahmad