gpt4 book ai didi

php - 在 PHP 上美化存储在字符串中的 HTML

转载 作者:太空宇宙 更新时间:2023-11-04 14:13:35 26 4
gpt4 key购买 nike

我在变量 $html 中有一个字符串,其中包含缩小的 HTMl 代码,全部在一行中,例如:

$html = '<body><div><p>hello</p><div></body>';

我如何美化/美化 HTML 以便我的变量变成这样:

 $html = '<body>
<div>
<p>hello</p>
<div>
</body>';

我知道 tidy延期是可能的,但没有延期怎么办。

编辑:请阅读问题。我不是在问如何通过某些外部站点美化 HTML 代码。我在问如何在 PHP 中做到这一点,特别是针对字符串变量。

最佳答案

使用 DomDocument 我们通过 LIBXML_HTML_NOIMPLIED 标志加载 html
这将阻止 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>

关于php - 在 PHP 上美化存储在字符串中的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34556727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com