phpでheaders already sentと怒られた場合の対処法
webアプリを作っていて何度もこれに遭遇したので、メモ。
<?php header("Content-Type: text/html; charset=UTF-8"); ?>
とか書いて実行してみる。
Warning: Cannot modify header information - headers already sent by (output started at hoge.php:1) in hoge.php on line 2
ん?ヘッダーが既に送信されている?
こんな場合は、大抵文字コードが原因というのが多い。
UTF-8(BOM有)で保存してしまうと、ファイルの先頭にBOMコードがついてしまっていて、
こいつが先に送信されてしまうからみたいです。
UTF-8を使うときはBOMなしで保存するのがいいみたいです。