如何保持PHP'View Source'html输出干净

kev*_*ler 8 html php browser

在检查网站上的源代码后,这一直困扰着我.我在模板中使用PHP输出来获取动态内容.模板仅以html开头,并且干净地缩进和格式化.然后添加PHP内容并缩进以匹配html格式.

<ul>
  <li>nav1</li>
  <li>nav2</li>
  <li>nav3</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

变为:

<ul>
  <?php foreach($navitems as $nav):?>
  <li><?=$nav?></li>
  <?php endforeach; ?>
</ul>
Run Code Online (Sandbox Code Playgroud)

当在html中输出时,封装的PHP行被删除但是用于格式化它们的空白空间被保留并且抛出视图源格式化所有的重击.我提到的网站在视图源输出上格式干净.我应该假设他们正在使用一些模板引擎吗?还有什么办法可以清理我的模板类型吗?没有手动删除空白并牺牲开发方的可读性?

sou*_*rge 13

这也是困扰我的事情.您可以做的最好是使用整洁来后处理文本.将此行添加到页面的开头(当您遇到输出缓冲的第一个PHP错误时,准备好输出缓冲):

ob_start('ob_tidyhandler');
Run Code Online (Sandbox Code Playgroud)


Mar*_*ang 6

你无法从内联PHP中获得干净的输出.我强烈建议使用某种模板引擎,如Smarty.除了干净的输出外,模板引擎还具有在代码和设计之间保持一定分离的优势,从而提高了复杂网站的可维护性和可读性.

  • 在这种情况下,Smarty并没有真正的帮助.像`{if $ foo}`和`<?php if($ foo):?>`这样的控制结构实际上是一样的.对于操纵html,如@soulmerge正确指出的那样"整洁". (5认同)