使用单引号时,在PHP中创建制表符和换行符的正确方法是什么?

时间:2010-10-18 14:46:42

标签: php newline escaping

似乎是一个简单的问题,但我无法在任何地方找到可靠的答案。我正在输出大量的HTML并且发现转义是容易出错并且难以阅读,但我也希望将HTML格式化得很好。

想要这样的东西(虽然我知道这不会有问题):

echo '<div id="test">\n';
echo '\t<div id="test-sub">\n';
echo '\t</div>\n';
echo '</div>\n';

该怎么做?

感谢。

4 个答案:

答案 0 :(得分:3)

你看到了HEREDOC

吗?
  

Heredoc文本的行为就像一个   双引号字符串,没有   双引号。这意味着报价   在heredoc中不需要逃脱

此处的优势示例:http://www.shat.net/php/notes/heredoc.php

答案 1 :(得分:3)

有很多方法可以确定,例如,这很好用(PHP_EOL是一个交叉Platt形式常量,用于新行Char(EndOfLine)):

echo "<div id=\"test\">".PHP_EOL;
echo "\t<div id=\"test-sub\">".PHP_EOL;
echo "\t</div>".PHP_EOL;
echo "</div>".PHP_EOL; 

答案 2 :(得分:-1)

使用双引号

或多行回声字符串:

echo '<div id="test">
    <div id="test-sub">
    </div>
</div>';

或模板。

答案 3 :(得分:-1)

我使用了一小部分我编写的类来输出格式良好的HTML。如果您有兴趣,可以找到它here

为了得到你想要的东西,我最终会写出像

这样的东西
$mypage = page::blank();
$mypage->opennode('div', 'id="test"');
$mypage->opennode('div', 'id="test-sub"');
$mypage->closenode(2); // div, div
echo $mypage->build_output_strict();

另一种选择是使用完整的模板引擎,其中有很多。