При отображении HTML-кода в PHP, если я хочу отступать теги, что было бы лучше всего?
Например,
<?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>
Вы можете использовать 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>";
Если вы знаете, как вы хотите, чтобы он выводился (как в том, как будет выглядеть ваша строка, как вы его делаете), вы можете легко сделать это следующим образом:
$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 (даже не уверен, применим ли он в этой ситуации) ,
Возможно, вам понадобится расширение PHP Tidy .
Tidy является связующим звеном для утилиты очистки и восстановления Tidy HTML, которая позволяет не только очищать и иным образом манипулировать HTML-документами, но также перемещаться по дереву документов.