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. 在 Notepad++ 中打开您的 PHP inlcude 文件(在此处下载:http: //notepad-plus-plus.org/
  2. 选择编码 --> 在没有 BOM 的 UTF-8 中编码

空节点消失。希望对某人有所帮助。这让我发疯了。

于 2013-02-08T21:46:08.640 回答
1

我现在遇到了同样的问题,找到答案时我很幸运。答案在字符集中。这可能很奇怪,但是当您将文件保存为 UTF-8 时,您的标记中会出现空白。当你的文件在 cp1251 中时,你没有这个问题。

于 2012-08-04T17:20:06.620 回答
0

这是我的第二个由 BOM 引起的问题(都花费了一个多小时的调试、谷歌搜索和拉扯)。我刚刚发现了这个(仅限 Windows)小型拖放程序,可以检查它可以删除的 BOM:

Brynt Younce的文件 BOM 检测

小,容易和简单。似乎有一个适用于所有平台的 PHP 解决方案,但我尚未对其进行测试。有兴趣可以看看:

于 2015-01-12T13:20:25.667 回答