考虑以下代码:
<div id="sidebar">
<?php
require_once('/components/search.php');
require_once('/components/categories.php');
?>
</div>
search.php
并且category.php
本质上是相同的结构 - 具有一些特定内容的 div 容器。这里没什么特别的,纯 HTML:
<div class="component">
<!-- blah -->
</div>
require_once
但是,当使用(或require
/等)插入时include
,PHP在每个元素上方添加空格,将其向下推,在Chrome的Inspect Element工具中可识别为空文本节点(删除该节点时空格消失)
从侧边栏脚本中删除所有不必要的空格(使其成为单行代码)并不能修复它。如果我只是用require_once
组件的内容替换这些行,空格就不会出现。所以不知道为什么 PHP 在 require 上添加它。有任何想法吗?
更新
这仍然被证明是一个奇怪的。我现在同意这require_once
似乎不是根本原因。我决定暂时忽略这个问题,并希望在我进一步研究后它会消失。唉,它仍然存在,所以我做了更多的调查。检查浏览器中的页面源代码确认有问题的代码确实作为一个完整的长行返回http://pastebin.com/dtp7QNbs - 任何标签之间没有空格或回车,但浏览器中出现空格- 在检查元素工具中可识别为每个之间的空行<div class="component">
这是否有助于进一步阐明这个问题?