我在变量$html中有一个包含缩小的HTMl代码的字符串,所有这些都在一行中,如:
$html = '<body><div><p>hello</p><div></body>';
Run Code Online (Sandbox Code Playgroud)
如何美化/漂亮打印HTML,以便我的变量变为:
$html = '<body>
<div>
<p>hello</p>
<div>
</body>';
Run Code Online (Sandbox Code Playgroud)
我知道整齐的扩展是可能的,但如果没有扩展,怎么办呢.
编辑:请阅读问题.我不是问如何通过一些外部网站美化HTML代码.我问如何在PHP中实现它,特别是针对字符串变量.
使用DomDocument我们加载传递LIBXML_HTML_NOIMPLIED标志的html,
这将阻止该loadHTML方法添加额外的html包装器.
我们保存为XML以获得良好的缩进,同时传递$dom->documentElement参数以防止XML标头.
$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);
Run Code Online (Sandbox Code Playgroud)
这将输出
<body>
<div>
<p>hello</p>
<div/>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
请注意,这HTML是固定的,因为第二个div应该是一个结束标记,我假设.
如果我们将right HTML作为输入字符串传递,则输出将根据您的需要而定
$html = '<body><div><p>hello</p></div></body>';
<body>
<div>
<p>hello</p>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)