2

在 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>
4

4 回答 4

6

您可以使用 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>";
?>
于 2012-09-03T07:02:06.020 回答
2

您可能还想使用 HEREDOC。

 $html = <<<NICE

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

 NICE;

 echo "<pre>";
 echo htmlspecialchars( $html );
 echo "</pre>";
于 2012-09-04T04:19:52.590 回答
1

您可能需要了解PHP Tidy 扩展

Tidy 是 Tidy HTML clean and repair 实用程序的绑定,它不仅允许您清理和以其他方式操作 HTML 文档,还允许您遍历文档树。

于 2012-08-29T10:27:43.560 回答
0

如果你知道你希望它如何输出(就像你的字符串在你制作它时的样子),你可以很容易地这样做:

$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(甚至不确定它是否适用于这种情况) .

于 2012-08-29T09:55:24.603 回答