我的变量中有一个字符串$html
包含精简的 HTMl 代码,全部在一行中,例如:
$html = '<body><div><p>hello</p><div></body>';
如何美化/漂亮地打印 HTML,以便我的变量变成这样:
$html = '<body>
<div>
<p>hello</p>
<div>
</body>';
我知道tidy http://php.net/manual/en/book.tidy.php延期是有可能的,但是如果没有延期怎么办呢?
EDIT: 请阅读问题。我不是在问如何通过某些外部站点美化 HTML 代码。我问如何在 PHP 中执行此操作,特别是针对字符串变量。
Using DomDocument
我们加载 html 并传递LIBXML_HTML_NOIMPLIED
flag
这将防止loadHTML
添加额外的方法html
包装纸。
我们保存为 XML 以获得漂亮的缩进,同时传递$dom->documentElement
参数来防止XML
header.
$html = '<body><div><p>hello</p><div></body>';
$dom = new DOMDocument();
$dom->preserveWhiteSpace = false;
$dom->loadHTML($html,LIBXML_HTML_NOIMPLIED);
$dom->formatOutput = true;
print $dom->saveXML($dom->documentElement);
这将输出
<body>
<div>
<p>hello</p>
<div/>
</div>
</body>
请注意,HTML
已为您固定为第二个div
我认为应该是一个结束标签。
如果我们通过适当的HTML
作为输入字符串,输出将根据您的要求
$html = '<body><div><p>hello</p></div></body>';
<body>
<div>
<p>hello</p>
</div>
</body>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)