考慮下面的代碼:PHP增加了額外的空格上需要
<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的檢查元素工具的空白文本節點(刪除此節點時,空白字符消失)
從側邊欄腳本中刪除所有不必要的空格(使其成爲一行代碼)不會修復它。如果我只是將require_once
行替換爲組件的內容,則不顯示空白。所以不知道爲什麼PHP會根據需要添加它。有任何想法嗎?
更新
這一個仍然被證明是一個奇怪的一個。我現在同意require_once
似乎不是這樣的根本原因。我決定暫時忽略這個問題,並希望在我進一步研究之後它會消失。唉,它仍然存在,所以我做了更多的調查。在瀏覽器中檢查頁面源代碼確認所涉及的代碼確實是作爲單一的長實線返回http://pastebin.com/dtp7QNbs - 任何標記之間沒有空白或回車,但空間出現在瀏覽器中 - 在檢查元素工具中可識別爲<div class="component">
這是否有助於揭示這個問題?
之前,我高度懷疑'require_once'被添加空格。您應該查看正在包含的文件,並查看最後是否有任何結尾。 – Kermit 2013-02-11 15:37:52
將'require'語句放在一行中:'<?php require_once('/ components/search.php'); require_once( '/部件/ categories.php'); ?>並在關閉PHP標記後刪除任何尾隨空格。 – BenM 2013-02-11 15:38:02
刪除每個包含文件末尾的?> – 2013-02-11 15:38:03