2011-04-24 137 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缩进的时间是,如果您希望某人使用浏览器查看页面源代码。