私のコードは簡単です:
<!DOCTYPE html>
<html>
<head>
...
<?php var_dump(headers_sent()); ?>
false を返します。何かが印刷された直後にヘッダーを送信するべきではありませんか? <
最初の文字の直後のように。
私のコードは簡単です:
<!DOCTYPE html>
<html>
<head>
...
<?php var_dump(headers_sent()); ?>
false を返します。何かが印刷された直後にヘッダーを送信するべきではありませんか? <
最初の文字の直後のように。
output_buffering
ファイルにディレクティブがあるかどうかによって異なりphp.ini
ます。もしそれがOff
output_buffering = Off
その後、echo headers_sent()
出力する必要があります1
それ以外の場合は、headers_sent()
FALSE になるため結果を出力しません。出力がバッファリングされるため、ヘッダーは送信されません。
これを回避してヘッダーを強制的に送信したい場合は、 を使用できますflush()
。
お役に立てれば!
ドキュメントのコメントを読んでください!
例: 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 のコメントで次のように指摘されています。
output_buffering を非アクティブ化せずに方法を見つけることができました:
if (!headers_sent() && !ob_get_contents()) {
// do your thing
}