自动缩进的HTML代码,并显示它(Auto-indent HTML Code and Display

2019-07-31 06:18发布

当PHP显示HTML代码,如果我想缩进标记什么是最好的方法是什么?

例如,

<?php
$html = '<div><p><span>some text</span></p></div>';

echo htmlspecialchars($html);
?>

会给<div><p><span>some text</span</p></div>

相反,我想表现出类似,

<div>
    <p>
        <span>some text</span>
    </p>
</div>

Answer 1:

您可以使用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>";
?>


Answer 2:

您可能还需要使用HEREDOC。

 $html = <<<NICE

 <div>
     <p>
         <span>some text</span>
     </p>
 </div>

 NICE;

 echo "<pre>";
 echo htmlspecialchars( $html );
 echo "</pre>";


Answer 3:

您可能需要知道PHP扩展整洁 。

Tidy是一个整洁的HTML清理和修复工具,它可以让你不仅干净,否则操作HTML文档的结合,同时也遍历文档树。



Answer 4:

如果你知道你想要的是输出(如您的字符串将是什么样子,你让),你可以很容易地做到这一点是这样的:

$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>

如果你想拥有它自动完成的,那么你可能要持续一个答案,我真的不知道多少正则表达式来帮忙,我不使用DOM(甚至不知道它是否适用于这种情况) 。



文章来源: Auto-indent HTML Code and Display It