ホームページ >バックエンド開発 >PHPチュートリアル >ヘッダーは送信されましたが、それでも false が返されるのはなぜですか?
header("Content-type: text/html; charset=gbk"); // ヘッダーを送信します
$a=headers_sent();
var_dump($a); // ここで false が返されるのはなぜですか?? ? ?
ディスカッションへの返信 (解決策)
誰かがマニュアルでこの問題について言及しています:
私の英語は苦手なので説明してください。それ。ありがとう。
header("Content-type: text/html; charset=gbk"); flush();//刷新输出缓冲 var_dump(headers_sent());
header("Content-type: text/html; charset=gbk"); flush();//刷新输出缓冲 var_dump(headers_sent());
理論的な知識を教えていただけますか? ?
たとえば、 headers_sent はどのような状況で true を返しますか??
echo " ";
var_dump(headers_sent());
非常に単純で、出力またはフラッシュがある限り
headers_sent が呼び出されると true を返します
header("コンテンツ タイプ: text/html; charset=gbk" );
echo " ";
var_dump(headers_sent());
header("Content-type: text/html; charset=gbk");
echo " " ;
var_dump(headers_sent()); //これは明らかに false です????????????
あなたの文は間違っていると思います
bool headers_sent ([string &file [, int &line]])
HTTP マークの場合 ヘッダーがまだ送信されていない場合、headers_sent() は FALSE を返し、それ以外の場合は TRUE を返します。オプションのパラメータ file と line が指定されている場合、headers_sent() は PHP ファイル名と出力が始まる行を file 変数と line 変数に入れます。
#3 の flash() は出力キャッシュの内容をプッシュアウトする (実際に出力する) ため、後続の headers_sent は true を返します