0

これを想像してください:

<?php
include_once('galeria.php');
?>

galeria.phpファイルは完全なhtml/phpファイルです。ファイルを含めて、ヘッダーが再度送信されないようにすることは可能ですか?iframeを使用したり、インクルードファイルを変更したりしたくないだけです。

4

3 に答える 3

2

あなたは「ヘッダー」という用語を使ってみんなを混乱させました。ヘッダーは、ペイロードをどう処理するかをブラウザに指示するためにWebサーバーによって送信されるものです。あなたはHEADについて話していて、HTMLタグとBODYタグが疑われます。

賢明な人なら誰でもファイルをセクションに分割するだけですが、奇妙な理由で(理由は教えてくれませんでした)、これはしたくないと言います。その場合、galeria.phpファイルを読み取り、PHPのDOMクラスメソッド(推奨)またはいくつかのREGEX(あまり良くない)を使用して、galeria.phpファイルから本文のペイロードを抽出できます。

これを賢明にデザインしたくない理由を教えてください。

于 2013-03-20T11:29:48.833 に答える
1

include_once

include_onceステートメントには、スクリプトの実行中に指定されたファイルが含まれ、評価されます。これはincludeステートメントと同様の動作ですが、唯一の違いは、ファイルのコードがすでに含まれている場合、再度含まれないことです。名前が示すように、それは一度だけ含まれます。

Official Document

于 2013-03-20T11:04:24.873 に答える
1

ヘッダーは一度だけ送信されます-最初のバイトがブラウザに送信される直前です。バイトは、(たとえば)、、またはセクション外のリテラルtext/htmlによってブラウザに送信echo()できprint()ます<?php ?>

を含むファイルがヘッダーを明示的galeria.phpに送信する必要がない場合は、心配する必要はありません。

それ以外の場合-ヘッダーを明示的に送信するgaleria.php 必要galeria.phpがあるファイルを含む場合は、次のように出力をバッファリングできます。

  • まず、呼び出しob_start()(すべての出力を一時バッファーにリダイレクトします)、
  • 次に、インクルードgaleria.php(出力はブラウザーではなくバッファーに送信されます。ヘッダーはまだ送信されません)、
  • 次に、必要に応じて、を介してヘッダーを送信しますheader()
  • 呼び出しob_end_flush()て、バッファーの内容をブラウザー(およびそれを含むすべてのデフォルトヘッダー)に送信します。

http://www.php.net/manual/en/function.ob-start.phpおよびhttp://php.net/manual/en/book.outcontrol.phpを参照してください。

于 2013-03-20T11:16:56.843 に答える