表示のずれ。PHPでrequire_once、requireを使ったら。BOMのワナ。 | 昭和56年生まれが株FXとか原油とかに投資するブログ

昭和56年生まれが株FXとか原油とかに投資するブログ

気づけばもう40歳になろうとしている
20歳のころから大して変わっていないのに

require_onceを使って外部ファイルでPHPを読み込むようにしたら、なんだか微妙な表示のズレがでる。

他は何も変えていない。空白?
「?」が出てきたり、空白の1行みたいなものが現れて、表示が微妙にずれるのです。

なんだなんだーと検索して調べるも、よくわからない。
30分くらい格闘してあきらめようかと思ったら、見つけた。

保存の方法なのだ。
エディタはEZhtmlを使っていて、文字コードはUTF-8で保存している。
これだと、通常は問題ないけど、requireなどを使うとBOMがくっついてくるってワナらしい。

たまーに出てくるBOM。
正直言って、なんのためにあるかあんましらないし、邪魔であるw
Byte Order Markの略で、UTF-16などでは必要なものらしい。なんでUTF-8についてくんだ。

なので、保存するときにBOMなしになるUTF-8Nで保存したらうまくいきました。
ちなみにrequireで呼び出されるファイルを保存すればうまくいきました。

いやぁ、微妙なずれって本質的には問題ないけど、いらっとしますよね。