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

Seems like a simple question, but I haven't been able to find a solid answer anywhere. I'm outputting a ton of HTML and find escaping "s to be error prone and hard to read, but I also want to have my HTML formatted nicely.

Want something like this (though I know this won't worK):

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

What is one to do?

Thanks.

did you look on HEREDOC

Heredoc text behaves just like a double-quoted string, without the double quotes. This means that quotes in a heredoc do not need to be escaped

example of advantage here : http://www.shat.net/php/notes/heredoc.php

use double quotes

or a multi-line echo string:

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

or templates.

There are a lot of ways to make sure, this works just fine for example (PHP_EOL is a cross Platt form Constant for a new line 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; 

I make use of a small set of classes I wrote in order to output nicely formatted HTML. If you are interested you can find it here.

To get what you want, I would end up writing something like

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

Another alternative would be to use a full-fledged template engine, of which there are quite a few.