ホームページ  >  記事  >  バックエンド開発  >  PHP によって生成された HTML メタタグとリンクタグは body タグ内にあり、top_PHP チュートリアルには空白行があります。

PHP によって生成された HTML メタタグとリンクタグは body タグ内にあり、top_PHP チュートリアルには空白行があります。

WBOY
WBOYオリジナル
2016-07-21 15:37:40757ブラウズ

1. PHP で Smarty テンプレートを使用して生成された HTML には、ブラウザーの上部に空白行があります

2. firedebug を使用して、meta タグと link タグがローカルで正常に動作することを確認します。マシンに送信されますが、IASP のサービスには上記のバグがあります。

ソース ファイルを見ると、テキストは同じですが、おそらく utf-8 の問題が発生します。

オンラインで検索したところ、utf-8 BOM の問題であることがわかりました。

解決策: すべての Smarty テンプレート ファイル (インクルード ヘッダー、フッターなど) を保存します。 ) BOM なしの utf-8 ファイルとして保存します。

その他の補足説明:

このページは UTF8 エンコーディングを使用しており、テンプレートには先頭と末尾にドキュメント メソッドが使用されています。その結果、約 10px の余分な空白行が生じます。頭と尻尾は理由もなく、何もありません。

その理由は、ドキュメントがインクルードされると、最終的なバイナリ ストリームに複数の UTF8 BOM タグが含まれるページを正常に解析できず、実際に表示されるキャリッジ リターンに直接置き換えられるためです。この方法では空白行が発生しますが、Firefox ではこの問題は発生しません。

したがって、テンプレートに含まれているメソッドが使用されており、ultraedit を使用して保存する必要がある複数の utf8 ドキュメントが含まれている場合は、utf8 を選択するだけで、BOM 形式なしで保存できます。

さらに、中国語ページが HTML head タグの
したがって、utf8 ページは標準の順序を使用する必要があります


コードをコピーします コードは次のとおりです。


;meta name=”著者” Content=”” />
> ;


BOM ヘッダー: xEFxBBxBF、PHP スクリプト 4 および 5 は引き続き BOM を無視するため、解析する前に直接出力されます。

この問題については、w3.org 標準 FAQ に特別な説明があります:

www.w3.org/International/questions/qa-utf8-bom

詳細は次のとおりです:

UCS エンコーディングには、 「ZERO WIDTH NO-BREAK SPACE」文字と呼ばれるコード。そのエンコードは FEFF です。 FFFE は UCS に存在しない文字なので、実際の送信には現れないはずです。 UCS 仕様では、バイト ストリームを送信する前に文字「ZERO WIDTH NO-BREAK SPACE」を送信することを推奨しています。このように、受信機が FEFF を受信した場合は、バイト ストリームがビッグ エンディアンであることを示し、FFFE を受信した場合は、バイト ストリームがリトル エンディアンであることを示します。したがって、「ZERO WIDTH NO-BREAK SPACE」という文字は BOM とも呼ばれます。

UTF-8 はバイト順序を示すために BOM を必要としませんが、BOM を使用してエンコード方式を示すことができます。文字「ZERO WIDTH NO-BREAK SPACE」の UTF-8 エンコーディングは EF BB BF です。したがって、受信側が EF BB BF で始まるバイト ストリームを受信すると、それが UTF-8 でエンコードされていることを認識します。

Windows は、BOM を使用してテキストドキュメントのエンコード方式をマークする操作です。システム: WindowsXP Professional、デフォルトの文字セット: 中国語

1) メモ帳: BOM なしで utf-8 エンコード形式のドキュメントを自動的に識別できますが、制御はできません。文書を保存するときに BOM を追加するかどうか。文書を保存すると、一律に BOM が追加されます。

2) editplus: BOM のない UTF-8 エンコード形式のドキュメントを自動的に認識できません。ドキュメントを保存するときに UTF-8 形式を選択すると、ドキュメント ヘッダーに BOM ヘッダーが書き込まれません。

3) UltraEdit: 文字エンコーディングの場合。最も強力な機能として、BOM ありと BOM なしの UTF-8 ドキュメントを自動的に識別できます (設定可能)。保存時に、設定を通じて BOM を追加するかどうかを選択できます。 utf-8 no bom 形式で保存することを選択する必要があります)

その後、Notepad ++ も utf-8 bom をより適切にサポートしていることがわかりました。皆さんにもそれを使用することをお勧めします。



http://www.bkjia.com/PHPjc/321888.html

www.bkjia.com

tru​​e
http://www.bkjia.com/PHPjc/321888.html

技術記事 1. PHP で Smarty テンプレートを使用して生成された HTML には、ブラウザの上部に空白行があります。 2. firedebug を使用して、Wmap が body タグ内にあることを確認します。ただし、リモートサーバーに送信されます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。