PHP を HTML に記述する時の注意点です。はまりました。
<html>
<body>
<?php
require(/lib/mylib.php);
get_header(); // ★この行を追加!
get_navi_menu();
get_contents();
?>
</body>
</html>
というUFT8で記述されたHTMLがあるとします。
元々はHTMLタグがあった部分をPHPで部品化しようと、★のようにした時、上画像の「ここの幅」等が伸びてしまう事があります。PHPのタグ間に含まれる改行や空白はブラウザーに表示されないはずですが、何故でしょうか?
答えは、BOM(ByteOrderMarkというバイナリーデータ)です。
UTF-8には、BOM有り(UTF-8)とBOM無し(UTF-8N)があって、上記の場合だと、mylib.php にBOMがあると、HTMLのレイアウトが意図しない感じで崩れたりします。
HTML や PHP を UTF8 で書く時は、UTF8N で書きましょう。
■UTF-8 と UTF-8N の違い
http://d.hatena.ne.jp/simiken/20080516/1210899498