4

私のコードは簡単です:

<!DOCTYPE html>
<html>
  <head>
    ...

   <?php var_dump(headers_sent()); ?>

false を返します。何かが印刷された直後にヘッダーを送信するべきではありませんか? <最初の文字の直後のように。

4

3 に答える 3

4

output_bufferingファイルにディレクティブがあるかどうかによって異なりphp.iniます。もしそれがOff

output_buffering = Off

その後、echo headers_sent()出力する必要があります1

それ以外の場合は、headers_sent()FALSE になるため結果を出力しません。出力がバッファリングされるため、ヘッダーは送信されません。

これを回避してヘッダーを強制的に送信したい場合は、 を使用できますflush()

お役に立てれば!

于 2013-07-11T08:38:09.933 に答える
2

ドキュメントのコメントを読んでください!

例: http://es1.php.net/manual/en/function.headers-sent.php#75835

彼は素晴らしい説明をします:P

編集

はい、print() または header() を使用して出力に何かを送信した場合でも、php.ini で output_buffering が Off と異なり、送信したものの長さが size を超えていない場合、headers_sent() は false を返します。 output_buffering の。[...] これは、php.ini のコメントで次のように指摘されています。

于 2013-07-11T08:35:04.920 に答える
0

output_buffering を非アクティブ化せずに方法を見つけることができました:

if (!headers_sent() && !ob_get_contents()) {
    // do your thing
}
于 2016-11-16T10:46:17.683 に答える