簡體   English   中英

PHP格式化輸出html

[英]Php formatting output html

在ruby on Rails中,您可以選擇創建更清晰且格式良好的輸出:

<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>

在php中有什么類似rubys“ - %>”的東西可以幫助我實現相同的功能嗎?

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

例如,對於每個循環,將\\ n添加到字符串的末尾,以便將其打印在文件的新行上。 如果你想要一個標簽,你可以做\\等等

您可以使用與PHP捆綁在一起的HTMLTidy

但是,您應該考慮使用Tidy處理標記會降低您的網站速度。 如果必須使用Tidy,則應緩存其輸出,或僅啟用它以進行調試。

不要以為它是提供的。 就像@Antwan狀態一樣,你只需要在echo上添加自己的換行符和標簽。 注意:不確定是否有完整的校對功能來處理這個問題,因為您的IDE也會影響您的換行符和間距。

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

修正了代碼:(看起來很難看?)

    <div>

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

保留<?php ?>標簽之間的空格,也許Ruby做了一些想要過濾它的東西,PHP無論如何都沒有。

決定使用PHP打印哪個部分以及在本機HTML中需要哪個部分總是很棘手。 在任何情況下,瀏覽器都不關心空格;)

我偶爾會做類似以下的事情:

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

所有行都在文本中縮進,因此HTML更易於閱讀。 但是,如果要在HTML中添加大量變量,這才有意義。 正如之前提到的那樣,瀏覽器不依賴縮進來顯示頁面。 您需要正確的HTML縮進的唯一時間是您希望有人使用他們的瀏覽器查看頁面源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM