ホームページ >バックエンド開発 >PHPチュートリアル >PHPで生成されたHTMLページの上部に現れる空白部分(#65279文字?)の解決策
ThinkPHP フレームワークを使用した最近のプロジェクトでは、いずれかのページの上部に常に小さな空白スペースがあります。
下の図に示すように:
そして、これはChromeとEdgeブラウザでのみ表示されますが、FFではこの問題は発生しません。ページは PHP+HTML テンプレートからつなぎ合わせられているため、html ファイル、JavaScript ファイル、php ファイルが連続してチェックされました。問題は見つかりませんでした。
Chrome F12 を使用すると、空白スペースに 文字の文字列があることがわかりました。検索を通じて、これが UTF-8 エンコーディングの問題であることが判明しました。
私が使用するエンコードは UTF-8 + BOM です。このエンコード方法は通常、メモ帳や WINDOWS に付属するその他のソフトウェアなど、UTF-8 でエンコードされたファイルを保存するときに表示されます。ファイルの先頭に(0xEF 0xBB 0xBF、BOM)が挿入されます。これは、メモ帳などの編集者がファイルが UTF-8 でエンコードされているかどうかを識別できるようにするために使用される隠し文字の文字列です。通常のファイルの場合は問題ありません。しかし、PHP の場合、BOM が問題になります。 PHP は BOM を無視しないため、これらのファイルの読み取り、組み込み、または参照の際、BOM はファイルの先頭テキストの一部として使用されます。組み込み言語の特性上、この文字列が直接実行(表示)されます。
問題の原因がわかれば、簡単に解決できます。 phpstorm を使用しています。メニューバーファイルに「remove bom」オプションがあり、BOM モードなしで UTF-8 として直接保存できます。 notepad++ などのツールを使用している場合は、「名前を付けて保存」を選択し、エンコードで「UTF-8 without BOM」を選択すると問題を解決できます。