3

テンプレート エンジンとして php を使用していますが、ビュー ファイルをインクルードすると、そのビューのコンテンツの前に空のテキスト ノードが追加されることに気付きました。

たとえば、次のコンテンツを含む html ファイルを含めたいとします。

<p>Some text</p>

そのファイルを次のように含めるよりも:

<div><?php require_once('file/path.htm'); ?></div>

(divとphpの間のスペースをすべて削除したことに注意してください)そして、phpがファイルをインクルードした後、pタグの前にスペースを追加する空のテキストノード(この「」のようにマークします)を追加すると、次のようになります。

Some previous content...
<div>    
"" //empty text node
<p>Some text</p>
</div>

これはコンテンツの構成を台無しにするので、かなり問題です。これに対する解決策はありますか?

4

3 に答える 3

5

FSou1 は正しく、文字セットです。BOM なしで UTF-8 として保存することでも解決できます。

  1. PHP inlcude ファイルを Notepad++ で開きます (ここからダウンロード: http://notepad-plus-plus.org/ )
  2. エンコーディングを選択 --> BOM なしの UTF-8 でエンコード

空のノードが消えます。それが誰かを助けることを願っています。これは私を夢中にさせていました。

于 2013-02-08T21:46:08.640 に答える
1

私は今同じ問題を抱えていましたが、答えが見つかったときは運が良かったです。答えはcharsetにあります。奇妙かもしれませんが、ファイルを UTF-8 で保存すると、マークアップが空になります。ファイルが cp1251 の場合、この問題は発生しません。

于 2012-08-04T17:20:06.620 に答える
0

これは、BOM が原因で発生した 2 番目の問題です (両方とも、デバッグ、グーグル検索、ヘアプルに 1 時間以上かかりました)。削除できるBOMをチェックするこの(Windowsのみの)小さなドラッグアンドドロッププログラムを見つけました:

Brynt Younceによるファイル BOM 検出器

小さく、簡単、シンプル。すべてのプラットフォーム用の PHP ソリューションがあるようですが、私はそれをテストしていません。興味があれば見てみましょう:

于 2015-01-12T13:20:25.667 に答える