在PHP中维护换行符的选项> HTML源代码?

时间:2014-08-19 13:49:36

标签: php html

我想保持我的HTML源代码漂亮和缩进(或标签)。例如:

$someHTML.='<div class="NOINDENT">';
$someHTML.='    <div class="INDENT1">';
$someHTML.='        <div class="INDENT2"><div>';
$someHTML.='    </div>';
$someHTML.='</div>';

echo $someHTML;

这个PHP对我来说看起来很漂亮和可读,但是当输出HTML时,它将是一长行代码(没有换行符)!我想让PHP打印换行符,但仍然有代码&#34;可读&#34;在用PHP工作时。

对于上面的例子,在每行末尾使用\ n我唯一的选择吗?

6 个答案:

答案 0 :(得分:3)

Heredoc syntax救援

$someHTML = <<<HTML
<div>
    <div>
        ...
    </div>
</div>
HTML;

答案 1 :(得分:3)

您可以使用常量PHP_EOL来结束行

$someHTML.='<div class="NOINDENT">'.PHP_EOL;

HEREDOC语法更好,但当你在函数/ loop /等内部需要制表符时,它会让php代码看起来很奇怪

答案 2 :(得分:2)

如果它不止一行,我会尽量避免回显html。

相反,如果你需要字符串中的html,你可以使用输出缓冲,例如,如果你需要从函数返回一个字符串:

function getHtmlString(){
    ob_start(); ?>

    <div class="NOINDENT">
        <div class="INDENT1">
            <div class="INDENT2"><div>
        </div>
    </div>

    <?php
    $html = ob_get_clean();
    return $html;
}
?>
<html>
<head>...</head>
<body>
    <div id="someid">
        <?php echo getHtmlString(); ?>
    ...

答案 3 :(得分:1)

是的,你必须添加&#39; \ n&#39;最后。

如果您想要标签,请添加&#39; \ t&#39;在每一行的开始。

答案 4 :(得分:1)

为了使用换行符,您需要使用双引号字符串形式,并在每行的末尾放置换行符(\n)。请注意,现在需要使用反斜杠转义字符串中的双引号。例如:

$someHTML.="<div class=\"NOINDENT\">\n";
$someHTML.="    <div class=\"INDENT1\">\n";
$someHTML.="        <div class=\"INDENT2\"><div>\n";
$someHTML.="    </div>\n";
$someHTML.="</div>\n";

echo $someHTML;

另一个选择是使用HEREDOC string format,它将保留空格,并且还具有不要求你转义双引号的优点:

$someHTML = <<<HERE
<div class="NOINDENT">
    <div class="INDENT1">
        <div class="INDENT2"><div>
    </div>
</div>
HERE;

答案 5 :(得分:0)

我想表明这个解决方案接近我想要的,并且效果很好,但是盯着和结束了。和&#39 ;;不是那么漂亮。到目前为止,heredoc似乎是最好,最干净的答案。

function html(){
    $someHTML=
'<div class="NOINDENT">a
    <div class="INDENT1">b
        <div class="INDENT2">c<div>
    </div>
</div>';
    return $someHTML;
}

echo(html());