2013-10-26 90 views
0

正確的,我想要做的是創建一個像下面的圖像佈局: - Layout 此佈局將用於超過50多頁,所以我想了解創建這個最佳方式。我已經給出了它,但我似乎無法弄清楚這應該如何工作。如何正確創建這種類型的佈局(包含PHP)

我一直在努力得到它的,像這樣的工作:

的header.php - 保存側杆。側欄1 float: left;和側欄2 float: right,這些都在一個容器中,以將它們固定就位。

index.php - 保存內容(如包含用戶統計信息的表格)(在HTML表格中)。這是包裝在一個div(主要內容)。在頁面頂部I include("header.php");。這確實有效,但是當頁面頂部的PHP使用echo時,該值不會在div內。

基本上我創建的佈局是在這裏: - DEMO HERE

這就是我想要的佈局看,但現在這裏的問題。我使用PHP來計算的東西e.g:

if($userhp <= 0) { 
    echo "You are dead"; 
} 

下面這段代碼位於頁面的頂部,這意味着它會回聲出DIV(爲主要內容)之前被打開了。這個代碼應該在div中嗎?

這個例子是在一個更大的if聲明中,所以我不得不把它放在一邊,其中一些塊可以是100多行代碼。

所以我不知道如何去做這件事,在正確的方向推動會很好。

如果您需要了解更多信息或者我沒有做出足夠清楚的話,請留下評論,我會盡快回復您。

回答

2

看看output buffering。您可以將您的輸出存儲在一個變量中,然後在您的div中打印它:

<? 
ob_start(); // Turn on output buffering 
if ($userhp <= 0) { 
    echo "You're dead"; 
} 
... 
$contents = ob_get_clean(); // Store output in $contents 
... 
?> 

<div id="content"><?php echo $contents ?></div> 
+0

稍微查看一下,是否可以安全使用?它會給我帶來什麼問題(你知道的常見問題) – Ruddy

+0

是的,它可以安全地使用,例如Zend Framework(http://framework.zend.com/)也使用這種技術將頁面內容放入佈局。沒有我能想到的常見問題。如果您忘記關閉輸出緩衝(ob_get_clean或on_end_flush等),輸出將自動發送到腳本末尾的瀏覽器,這樣您就不會丟失數據(如果腳本由於錯誤而提前終止) 。 –

+0

唯一的問題可能是所有的輸出都存儲在內存中,但是當你顯示一個非常大的頁面(例如使用PHP顯示一個10MB大圖)時,這隻會成爲一個問題。對於一個普通的HTML頁面,你只能說幾kb的最大值。 –