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

htmLawedhttp://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

PHPTidy拡張機能について知っておく必要があるかもしれません。

Tidyは、Tidy HTMLのクリーンアンドリペアユーティリティのバインディングであり、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 に答える