你如何缩进你的HTML?

the*_*cat 9 html php indentation

鉴于我的应用程序生成的HTML.

function pagination(){
  echo "<ul>\n";

  for($i = 1; $i <= 10; $i++)
    echo "\t<li>...</li>\n";

  echo "</ul>\n";
}
?>
<div>
  <?php pagination(); ?>
</div>
Run Code Online (Sandbox Code Playgroud)

如果我添加另一个容器DIV,这不会产生正确的缩进代码.

是否有任何解决方案的功能以某种方式知道要添加多少\ t或空格,或以某种方式自动缩进html?

You*_*nse 13

惊人的问题.

到目前为止,9个答案和3个评论,看起来没有人打扰阅读问题正文,但只是重复了一些由标题中的关键字触发的福音 - 这是在stackoverflow的祝福网站上回答问题的最佳方式.

然而问题不是简单/单层.
我不得不承认,这本身就很模糊.所以,我们必须把它挖出来.

1)你如何缩进你的HTML?

使用模板,伙计.使用模板.唯一的答案.

2)是否有任何解决方案的功能以某种方式知道要添加多少\ t或空格,或以某种方式自动缩进html?

当然没有.
PHP不知道HTML,缩进等等.
特别是当没有准备好HTML时(!)

3)如果我添加另一个容器DIV,这不会产生正确的缩进代码.

这个问题的关键问题.
提出问题的问题.

但其中最难的一切.

答案是我表示完全不同意的答案,呵呵:
虽然标签的相对顺序很重要,但对于生成的大型HTML,可以将一些块移出行:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <h1>Hello</h1>
    <div>
<!-- news list -->
<div>
  <ul>
    <li>1..</li>
    <li>2..</li>
    <li>3..</li>
    <li>4..</li>
  </ul>
</div>
<!-- /news list -->
    </div>
    <div>
<!-- pagination -->
<ul>
  <li>Red</li>
  <li>Green</li>
  <li>Blue</li>
  <li>Black</li>
</ul>
<!-- /pagination -->
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

它将允许您在有意义的块中进行适当的缩进,同时保持主HTML的顺序.
作为副作用,它会让你的线条在屏幕上:)

为了在子模板中保持良好的缩进,我强烈建议使用基于PHP的模板.为善良而不是丑陋的HEREDOC!
这里只有一个遵循PHP模板的规则:
始终将PHP块保留在左侧.就这样.
要在PHP嵌套块之间保持缩进,只需将它们缩进内部即可<? ?>

例:

<ul>
<? foreach ($thelist as $color): ?>
  <li>
<?   if ($color == $current): ?>
    <b><?=$color?></b>
<?   else ?>
    <a href="?color=<?=$color?>"><?=$color?></a>
<?   endif ?>
  </li>
<? endforeach ?>
</ul>
Run Code Online (Sandbox Code Playgroud)

这将生成正确的缩进HTML,同时保持模板中HTML和PHP的顺序,使开发人员在开发和调试时更加轻松.

不要听任何说"根本不需要缩进代码!"的人.他们只是业余爱好者,而不是真正的开发者.任何知道调试是什么的人,谁调试代码很困难,都会告诉你适当的缩进是必不可少的.