phpでファイルをinclude時に謎の空白行が入る問題を解決
2018年05月10日
phpのファイルで、特定のファイルをincludeして読み込んだ場合に、謎の空白行が上に1行入る問題がありました。
発生した問題
phpファイルのヘッダの上に謎の空白行が1行表示される
原因の究明方法
まずはchromeのデベロッパーツールでソースコードを調べたが、ソースコード上には何の問題も見られない。
phpファイルのプログラムの行を削除して調べていたところ、特定のphpファイルをincludeした際に改行が入っていた。
該当のphpファイルを調査したが、問題ないソースコードであるように見受けられ、不要な出力や改行、全角文字なども見当たらなかった。
解決策
該当の問題となっていたphpファイルを新規作成して作り直し、同様のコードをコピーペーストして同様の内容とした。
作り直したファイルをアップロードしたところ問題は解消した。
つまり、もともとのファイルを作成した際に、文字コードや改行コードの微妙な違いがあったようである。
詳しい原因は分からないが、作成した時に使っていたエディタや環境と、現在使っている環境(phpstorm)が異なっていたために、微妙な差があって発生していた問題かもしれない。
こちらの記事のおかげで、3日間調べて試行錯誤して悩み抜いて憔悴した「謎の空白行」問題がやっと解決しそうです!
うちの場合は、インクルードする外部ファイルの文字コードがutf-8のBOM付きになっていたことが原因だったようで、外部ファイルをBOM無しにエンコードしただけで解消しました。
もっぱらスクリプトを書いている方々は、あまりこういう問題には縁がないんでしょうね・・・、回答につながるような記事がなかなか見つからなくて苦労しました。
こういうさりげない小さな記事が、とっても役に立つことがよくあるんです。書いてくださって本当にありがとうございます!
クレ様>
書いた記事が役に立ったようで何よりです。
こちらこそ励みになりました。