奈良で活動するホームページ制作工房のピクセリエ・ウェブ・スタジオです。
PHPインクルードで空白があいてしまう問題

現在、Wordpressを使ってブログ型のホームページサイトを作る仕事が何件かやっているのですが、「get_header」などのインクルードタグを使うとどうしてもページ先頭に空白があいてしまう問題にあたりました。ホームページのドキュメントタイプはUTF-8としています。
これまではShift-jisで作ることが多かったのであまり気にしていませんでした。実際はこの問題が起こることを認識していたのですが、調査を怠って、(自分の中で)放置していたのです。
一度はインターネットなどで調査はしたのですが、よくわからなかったというのが正直なところです。

今回はWordPressを利用するということで、UTF-8で作ることに決めたので、不安が過ぎりました。PHPでインクルードをせざるを得ない状況です。

ここで、放置していた問題に向き合うことになりました。実際はそんなに難しいことではなかったのかもしれませんが、サイト作りの奥深さを再認識することになりました。

インターネットで調査することになったのですが、すぐに解決しました。UTF-8などのユニコードのドキュメントは、BOM(ByteOrderMark)を自動的に埋め込んでいるので起きる現象で、これをとりあえず埋め込まないドキュメントに修正する必要があるとわかりました。

それには、今まで作ったドキュメントをすべて、ユニコードに対応しているテキストエディタで開いて、BOMを取り除いた上書き保存をするのか?と思い、非常に危険なことではないかと思いました。

しかし、なんのことはなくDreamweaverでBOMをつけない状態で保存ができるので、それを実行したら意図しない空白が消えたのでした。

DreamWeaverの編集>環境設定>新規ドキュメントで「Unicode Signature(BOM)を含める」のチェックをはずすしてドキュメントを上書き保存したら、PHPインクルードで空白が消えました。
BOM.jpg


もちろんWordPressでのインクルードタグでも空白が消えたので、これで表示上はうまく行ったようです。

BOMがなくなったことでの弊害はなさそうなので、今後はこの設定でドキュメントの作成をして問題はなさそうです。

2009年1月12日seijiaoki
コメント(0) >>コメントする
TRACKBACK PING: http://pixeliere.sakura.ne.jp/mt/mt-tb.cgi/304

ピクセリエは奈良・大阪・京都の方のために
ホームページの作り方を無料で講習いたします。
詳しくは「ホームページの作り方無料講習」

お気軽にお問い合わせください。

ホームページからのお問い合わせ
ピクセリエへメールinfo@pixeliere.com

今までに作ったイラストや3DCG画像です。解説を添えていますのでぜひご覧下さい。