phpでheaderが出力できなくてハマった件

<?php
header("Content-Type: text/xml; charset=utf-8");
?>

なぁんて単純なコードをつくって、ブラウザアクセスすると

Warning: Cannot modify header information - headers already sent by (output started at hoge.php:1) in hoge.php on line 2

と怒られる現象に悩まされること1昼夜。
 
なんで1行目でheaders already sentなんて言われるねん? とhttpヘッダを確認してみたり ob_flash() を試してみたりとハマりまくった末。普段愛用しているテキストエディタNoEditorで、ファイル保存するときに文字コードを「Unicode (UTF-8 BOM有)」形式で保存してたのが原因でした。
 
ファイル先頭に不可視のBOMコードがついてた訳です。そのコードが、phpでhttpヘッダ制御をする前に送信されちゃってたのが原因ぽいですね。orz。分かってしまえばなんてことないじゃーん。




« ソーシャル・ニュースサイト『newsing』オープンしました。 | メイン | 社内の情報共有手段 »

トラックバック

このエントリーのトラックバックURL:

コメントを投稿

about

平島浩一郎
株式会社マイネット・ジャパン



katy(ケイティ) - 携帯サイト作成無料CMS
newsing(ニューシング)
終電jp
まとめてブログ検索
あわせて読みたい

Powered by Movable Type
株式会社マイネット・ジャパン