いば日記

不定期更新の日記

[技術メモ] PHP を HTML に埋め込む時は、BOMに注意しないとレイアウトが崩れる

2009-11-26 19:50:42 | 技術メモ
sony

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


最新の画像もっと見る

コメントを投稿