2010-04-30 71 views
1

我收到額外的空白,這不是CSS,或在視圖輸出上沒有像它:HTML。額外的空白,在HTML輸出,在PHP MVC

我檢查了?>(刪除,我可以),保存UTF8沒有BOM。在每個文件的開始處檢查存在的空白區域,即使在最後。

這是結構:

index.php - this is the entry point; 
MODEL/ 
CONTROLLER/ 
VIEW/ 

假設,使得槽式GET方法,其發出的無功TPL一些價值。我們稱它爲LIST,因此它將所有數據拉入LIST模型,然後使用正確的數據向用戶顯示正確的模板。

我使用並測試了require_once,include_once,include,甚至用readfile進行了測試(只是爲了測試)。 LIST模板打開header.tpl和footer.tpl;我也嘗試刪除這兩個包括從列表模板,但仍然,額外的空白空間繼續。

這是額外的空白來自哪裏。該控制器放置<body> controller activity runs here </body>之間,這就是多餘的空白是來自:

$model_works->getRows(); 

$rows = $model_works->rows; 

if (!require_once('views/list_works.tpl.php')) { 

echo "<p>Error.</p>"; 

} // end if clause 

的list_works.tpl.php,與標籤basicly HTML;我沒有測試通過改變擴展到其他東西,如HTML。

此外,只需要記住,在這個文件的頂部,我們使用require_once來打開header.tpl和底部的footer.tpl。我已經通過刪除兩個測試,並且仍然生成了額外的空白空間。

正在這裏產生多餘的空白:

<body> 
# EXTRA WHITE SPACE HERE # 
<!-- some stuff working fine --> 
</body> 

非常感謝看, ; d

回答

0

在你的文件,一個流浪回聲的一個額外的斷行,保持評論一直到你找到它?

+0

嗨,感謝您的期待! 在list_works.tpl.php上,我刪除了所有東西,文件完全空了! 已經沒有空白了! 然後,我在list_works.tpl.php裏放置了一個虛擬文本,放在最上面:1

Some Text

。 獲得額外的空白。 那麼,我試着放置一個<?php echo「一些文本」; ?>然後

其他一些文本

一些文字

一些其他文本

沒有多餘的空白,或至少一些文本被放置在平時多餘的空白所在。 這就是我的=)不知道發生了什麼。 – punkbit 2010-04-30 11:38:30

+0

嗯,一定是文件中的東西,雖然我不知道是什麼。我在我自己的基於MVC的CMS中有空白,但無法看到它們的任何來源。 – 2010-04-30 22:40:18

1

嘗試打開您的文件在一個低級別的文本編輯器,如MS-DOS的編輯,你可能會發現一些控制字節刪除它,它會沒事的。

+0

謝謝@MrBassam!它爲我工作。 – Maverick 2012-04-21 14:14:19

1

我有同樣的問題,當使用require在文檔的其餘部分之前在主體的開頭處獲得了空白區域。我的解決方案非常簡單:

<!--Dummy HTML comment<? require something.php ?>--> 

這樣空白處在註釋中,並且不會顯示。問題是任何來自所需文件的返回也都在註釋中,所以你可以把這個返回放在所需文件的函數中,然後從本地文件中調用它來最終獲取數據並將其放在任何你想要的地方。我的apache服務器在HTML註釋中讀取PHP代碼時沒有問題,但我不確定這會在其他任何地方使用。