在PHP中显示HTML代码时,如果我想缩进标记,最好的方法是什么?
例如,
<?php
$html = '<div><p><span>some text</span></p></div>';
echo htmlspecialchars($html);
?>
将给出CCD_ 1。
相反,我想展示一些类似的东西
<div>
<p>
<span>some text</span>
</p>
</div>
您可以使用htmLawed
http://www.bioinformatics.org/phplabware/internal_utilities/htmLawed/
这将是您的代码:
<?php
require("htmLawed/htmLawed.php");
echo "<pre>";
echo htmlspecialchars(
htmLawed('<div><p><span>some text</span></p></div>', array('tidy'=>4))
);
echo "</pre>";
?>
您可能还想使用HEREDOC。
$html = <<<NICE
<div>
<p>
<span>some text</span>
</p>
</div>
NICE;
echo "<pre>";
echo htmlspecialchars( $html );
echo "</pre>";
您可能需要了解PHP Tidy扩展。
Tidy是Tidy HTML清理和修复实用程序的绑定,它不仅允许您清理和以其他方式操作HTML文档,还允许您遍历文档树。
如果你知道你希望它如何输出(比如你的字符串在制作时会是什么样子),你可以很容易地这样做:
$html = "<div>'n't't<p>'n't't't<span>some text</span>'n't't</p>'n't</div>";
不过,一定要使用双引号,而不是单引号。
源代码中的输出:
<div>
<p>
<span>some text</span>
</p>
</div>
如果你想自动完成,那么你可能需要等待另一个答案,我真的不知道有多少regex可以帮助,而且我也不使用DOM(甚至不确定它是否适用于这种情况)。