【发布时间】:2015-01-12 21:20:25
【问题描述】:
我使用 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>
这很成问题,因为它破坏了内容组合。有什么解决办法吗?
【问题讨论】:
-
如果没有
require_once也会发生同样的情况,即如果<div>仅静态包含<p>?确保任何 PHP 脚本的开头<?php之前没有空格,并且您应该也可以省略任何结尾?>。 -
在您的示例中,空文本节点是 before div,而您的投诉表明空文本节点是 inside div(在 p 之前) .我认为这只是您的代码示例中的一个小错误?否则,您的示例之前的代码将是相关的。
-
是的,抱歉,这是一个错误。不,如果我没有
require_once,它就不会发生。 -
您正在加载的 html 文件中是否有空白的前导空格?你可以
trim通过file_get_contents()加载它的内容,而不是如果其中没有解析的 php vars 则包含它。 -
@DeaconDesperado,不,我包含的文件中没有空白空间。
标签: php