我想保持我的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我唯一的选择吗?
答案 0 :(得分:3)
$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());