2012-12-10 60 views
-1

我有一個PHP腳本,我正在爲Mac編輯「文本牧馬人」。如何確保格式良好的PHP編輯器輸出的HTML輸出

在IDE中進行編碼時,我縮進了PHP代碼,使其更加乾淨和可讀。

但是,當我檢查服務器上的本地主機頁面的「查看源代碼」時,html輸出有大量空白,並且根本沒有均勻格式化。

有什麼我可以做的,以獲得更好的html輸出格式,甚至縮進?

+0

當你完成你的PHP腳本時,不要關閉標籤。 – Kermit

+1

你能發佈一個輸出HTML的片段或截圖,以便我們看到嗎? – dmikester1

+5

您是否有理由清理查看源的輸出?您可以採取措施確保html在源代碼中按照預期縮進,但它可能不值得爲最終無關緊要的工作付出代價。 –

回答

2

首先,你爲什麼要格式化輸出? 只有瀏覽器必須瞭解它,大家都知道,它甚至可以明白我見過的最糟糕的HTML標籤錯誤;)

如果你想調試你的網頁,我建議你在集成開發工具在您的瀏覽器中(例如在谷歌瀏覽器中,按F12)。

但是,如果你真的想縮進輸出,我建議你使用ob_*()函數,它可以緩衝輸出,所以你可以將它傳遞給一個漂亮的HTML格式化程序。

下面是一個使用Tidy延伸很短的例子:

ob_start(); 

// Now generate and output your HTML using your views, templates or whatever! 

$html = ob_get_contents(); 
ob_end_clean(); 

// Specify configuration 
$config = array(
    'indent'  => true, 
    'output-xhtml' => true, 
    'wrap'   => 200 
); 

// Tidy 
$tidy = new tidy; 
$tidy->parseString($html, $config, 'utf8'); 
$tidy->cleanRepair(); 

echo $tidy; 

你也可以使用一個回調函數ob_start()

ob_start(function ($html) { 
    // Specify configuration 
    $config = array(
    'indent'  => true, 
    'output-xhtml' => true, 
    'wrap'   => 200 
); 

    // Tidy 
    $tidy = new tidy; 
    $tidy->parseString($html, $config, 'utf8'); 
    $tidy->cleanRepair(); 

    return str_val($tidy); 
}); 

// Now generate and output your HTML using your views, templates or whatever! 

ob_flush(); 
+0

+1如果你可以建議一個體面的輸出緩衝區功能格式化...雖然我當然希望沒有人使用它。 – Brad

+0

@Brad剛剛完成。你是對的,有**真的不需要**! – ComFreek

0

標籤縮進不是無所不在的一個原因。製表符大小可能因您查看輸出的編輯器而異。它還會影響多行對齊。如果您想跨多行對齊,請使用空格。

但是,我通常不認爲應該關心對齊用戶獲得的HTML輸出,因爲用戶永遠不會看你的HTML或關心它,也不應該。他們應該看到的是瀏覽器中的解析結果。這對你來說確實不重要。實際上,這是對帶寬的浪費,並且不會給最終用戶帶來任何好處。