Как правильно создавать вкладки и разрывы строк в PHP при использовании одинарных кавычек? - PullRequest
1 голос
/ 18 октября 2010

Похоже на простой вопрос, но я нигде не смог найти надежного ответа. Я вывожу тонну HTML и считаю, что экранирующие символы подвержены ошибкам и трудны для чтения, но я также хочу, чтобы мой HTML форматировался красиво.

Хотите что-то подобное (хотя я знаю, что это не будет работать):

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

Что делать?

Спасибо.

Ответы [ 4 ]

3 голосов
/ 18 октября 2010

Вы смотрели на HEREDOC

Текст Heredoc ведет себя как строка в двойных кавычках, без двойных кавычек.Это означает, что кавычки в heredoc не нужно экранировать

пример преимущества здесь: http://www.shat.net/php/notes/heredoc.php

3 голосов
/ 18 октября 2010

Есть много способов убедиться, что это работает просто отлично, например (PHP_EOL является кросс-платтовой константой формы для новой строки 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; 
0 голосов
/ 18 октября 2010

Я использую небольшой набор классов, которые я написал, для вывода красиво отформатированного HTML.Если вам интересно, вы можете найти его здесь .

Чтобы получить то, что вы хотите, я бы в итоге написал что-то вроде

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

Другой альтернативой будет использованиеполноценный шаблонизатор, которых немало.

0 голосов
/ 18 октября 2010

используйте двойные кавычки

или многострочную строку эха:

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

или шаблоны.

...