ホームページ  >  記事  >  バックエンド開発  >  php template_PHPチュートリアルに表示される空白行の解決策

php template_PHPチュートリアルに表示される空白行の解決策

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

ローカルでは解決しましたが、サーバーにアップロードするときにまだ空白行があり、午前中ずっと作業していたので、最終的に自分で解決する方法を見つけることにしました。完璧な解決策。
PHP の表示バッファー表示原理を使用して、PHP の先頭に ob_start() の行を追加し、テンプレートが表示される前に ob_end_clean() を追加します。問題は、次のとおりです。解決したので、全体的な構造のコード例を示します。


コードをコピーします。 コードは次のとおりです。 ob_start(); // これは php の論理演算です
ob_end_clean(); /これは PHP テンプレート表示です
ob_end_flush();




他のネチズンからの追加コメント:
開発中に解決されていない問題
このページは UTF8 エンコーディングとテンプレート インクルード ファイルを使用していますhead and tailメソッドで を使用した結果、理由もなく先頭と末尾に10px程度の余分な空白行が発生し、何もありません。
その理由は、ファイルをインクルードすると、最終的なバイナリ ストリームに複数の UTF8 BOM タグが含まれるため、IE は複数の UTF8 BOM タグを含むページを正常に解析できず、実際に表示される改行に直接置き換えてしまうためです。空白行がありますが、Firefox ではこの問題は発生しません。 そのため、テンプレートが包含メソッドを使用して複数の utf8 ファイルを含み、ultraedit で保存する必要がある場合は、utf8 を選択して BOM 形式なしで保存するだけです。
さらに、中国語ページが html head タグの したがって、utf8 ページは標準の順序を使用する必要があります



コードをコピーします

コードは次のとおりです:
< ;meta name="キーワード " content="" />
メタ名="作者" コンテンツ="" />
<メタ名="著作権" コンテンツ="" />
<タイトル>



BOM ヘッダー: xEFxBBxBF、PHP4 および 5 は依然として BOM を無視するため、解析する前に直接出力されます。
この問題については、w3.org 標準 FAQ に特別な説明があります:

http://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 の有無にかかわらず utf-8 ファイルを自動的に識別できます (設定可能)。保存時に BOM を追加するかどうかを選択できます

(新しく作成したファイルを保存する場合は、特別な注意が必要です。 、utf-8 no bom 形式で保存することを選択する必要があります)

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

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/323087.html技術記事ローカルで解決しましたが、サーバーにアップロードするときにまだ空白行があり、午前中ずっと作業してクラッシュしそうになったので、数時間の探索の後、最終的に解決する方法を見つけることにしました。 ..
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。