2011-04-24 132 views
4

在Ruby on Rails的,你必須創建清潔的選項,以及格式化輸出:PHP的格式輸出HTML

<div> 
     <%= 3.times do -%> 
     <%= "Hello World" -%> 
     <%= end -%> 
</div> 

和輸出將是:

<div> 
    Hello World 
    Hello World 
    Hello World 
</div> 

但是當我做同樣的在PHP的事情:

<div> 
      <?php for ($i =0; $ < 3;$i++): ?> 
      <?php echo "Hello World" ?> 
      <?php endfor; ?> 
    </div> 

我得到的是這樣的:

<div>  Hello World 
Hello World 
     Hello World 
    </div> 

是有什麼樣RUBYS - 在PHP中,幫助我acheive同樣的事情 「%>」?

+1

這不應該是至關重要的,因爲瀏覽器將呈現兩成相同 – 2011-04-24 21:55:46

+0

@馬克·貝克,你是對的它並不重要,我想知道是否有類似的標籤,我不知道在PHP ,並且顯然沒有一個。 – Ibu 2011-04-24 22:11:02

回答

1

請記住,PHP是一個預處理器,所以基本上它只是附加一些東西到您的文件。這意味着要在你的文件中實現正確的「樣式」或「清潔」,你需要向(隨機)生成的東西添加換行符等。

例如用於每個循環加\ n字符串的末尾,以便將其打印在文件的新線。如果你想有一個標籤,你可以做\ t等

1

您可以使用HTMLTidy這是捆綁了PHP。

但是,你應該考慮與整理加工標記可以將您的網站慢下來。如果你必須使用Tidy,你應該緩存它的輸出,或者僅僅爲了調試目的而啓用它。

1

不要以爲它提供。就像@Antwan說的,你只需要在你的echo上添加你自己的新行和標籤。注意:不確定是否有完整的校樣函數來處理這個問題,因爲你的IDE也會影響你的換行符和間距。

function echonice($str) { 
    echo "\n\t".$str; 
} 
1

固定的代碼:(長得難看吧?)

<div> 

<?php for ($i =0; $ < 3;$i++): 
echo "\t\tHello World" ?> 
endfor; ?> 
    </div> 

其間空白的<?php ?>標籤被保留,也許紅寶石不花哨的東西篩選出來,PHP在任何情況下不會。

決定要使用PHP打印哪一部分以及使用本機HTML需要哪部分是非常棘手的。在任何情況下,瀏覽器不關心空白;)

1

我偶爾會做一些這樣的:

<?php 
echo "<html>"; 
echo " <head>"; 
echo " </head>"; 
echo " <body>"; 
echo "  <div>"; 
echo "   $variable"; 
echo "  </div>"; 
echo " </body>"; 
echo "</html>"; 
?> 

,所有的線路都在文本縮進使HTML更容易閱讀。但是,如果你有很多變量要添加到你的HTML中,這纔有意義。正如前面提到的那樣,瀏覽器不依賴縮進來顯示頁面。唯一需要正確HTML縮進的時間是,如果您希望某人使用瀏覽器查看頁面源代碼。