Php 如何缩进/美化动态生成的HTML?
我将HTML与PHP结合起来生成了一个网页。我的PHP代码是:Php 如何缩进/美化动态生成的HTML?,php,html,Php,Html,我将HTML与PHP结合起来生成了一个网页。我的PHP代码是: public function generateSelect() { $data = "<select>\n"; for ($i = 2000;$i<=2012;$i++) { $data .= "\t<option value='$i'>$i</option>\n"; } $data .= "</select>";
public function generateSelect()
{
$data = "<select>\n";
for ($i = 2000;$i<=2012;$i++)
{
$data .= "\t<option value='$i'>$i</option>\n";
}
$data .= "</select>";
$this->data = $data;
return $this;
}
公共函数generateSelect()
{
$data=“\n”;
对于($i=2000;$idata=$data;
退还$this;
}
这是我的HTML:
<div>
<?= $data ?>
</div>
这就是结果:
<div>
<select>
<option value='2000'>2000</option>
<option value='2001'>2001</option>
<option value='2002'>2002</option>
<option value='2003'>2003</option>
<option value='2004'>2004</option>
<option value='2005'>2005</option>
<option value='2006'>2006</option>
<option value='2007'>2007</option>
<option value='2008'>2008</option>
<option value='2009'>2009</option>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
<option value='2012'>2012</option>
</select>
</div>
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
我知道它可以用
\t
和\n
修复。但是我想知道是否有任何方法可以自动完成它?可以用PHP的类以及PHP的扩展来完成
<?php
$html = <<<HTML
<div>
<select>
<option value='2000'>2000</option>
<option value='2001'>2001</option>
<option value='2002'>2002</option>
<option value='2003'>2003</option>
<option value='2004'>2004</option>
<option value='2005'>2005</option>
<option value='2006'>2006</option>
<option value='2007'>2007</option>
<option value='2008'>2008</option>
<option value='2009'>2009</option>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
<option value='2012'>2012</option>
</select>
</div>
HTML;
$dom = new DOMDocument();
$dom->loadXML($html);
$dom->formatOutput = true;
echo $dom->saveHTML();
正如ceejayoz所说,这是没有必要的,但是如果您想在没有\t和\n的情况下完成它:
for ($i = 2000;$i<=2012;$i++)
{
$data .= "
<option value='$i'>$i</option>";
}
for($i=2000;$i不要为生产环境中的标记缩进而烦恼。不要使用HTML美化器过滤器来隐藏代码的潜在问题
如果需要在开发环境中缩进代码,请注意前面提到的库(Tidy和DOM)将尝试修复标记(这是它们的主要用途;缩进是一种副产品)
不会尝试清理或以其他方式操作缩进以外的输出。此库旨在简化调试。请勿在生产中使用
$parser = new \Gajus\Dindent\Parser();
$output = $parser->indent('<p>Your HTML</p>');
$parser=new\Gajus\Dindent\parser();
$output=$parser->indent(“您的HTML”);
DOMDocument
适用于片段。只要它们有效,它就应该格式化代码。因此,我只是取消了您的选项之一
标记,并且DOMDocument
没有重新缩进。请参见。抱歉,我的错误。不幸的是,除非您的注释被编辑,否则无法撤销。因此,可能需要添加一行,我撤销,然后您撤销您的注释ges。我也是。很抱歉弄得一团糟。@WebnetMobile.com别担心!