php съедает перевод строки сразу после символов "?>"

korpus

злой бобёр
php съедает перевод строки сразу после символов "?>"

В php есть некоторые особенности, которые могут испортить изначально читабельную html-разметку.
Вот пример скрипта:

Код:
<?php
$par1='параграф 1';
$par2='параграф 2';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
     <meta http-equiv="Content-Language" content="ru" />
     <title>Тест</title>
</head>
<body>
	<div>
<?php echo $par1; ?>
	</div>
	<div>
<?php echo $par2; ?>
	</div>
</body>
</html>
Если не запускать его, а просто посмотреть, то видно что разметка читабельна, а закрывающие теги расположены ровно под открывающими. Т.е. сверстано всё правильно и понятно. В качестве отступов использована табуляция.
Но если же запустить скрипт и после этого посмотреть исходный код из браузера, то выясниться, что текст выведен примерно так:
<div>
параграф 1 </div>
Перевод строки после "?>" куда-то делся. Разметка испортилась и стала хуже читаться. Зачем php съедает перевод строки сразу после символов "?>"? Можно это исправить?
 

korpus

злой бобёр
Автор оригинала: john.brown
Делай два перевода строки... :)
Так можно поступить. Но сама разметка становится не очень аккуратной.
Вообще интересно куда девается этот перевод строки?
 

zerkms

TDD infected
Команда форума
какая разница? ты пишешь html для эстетов или для браузера? качество верстки определяется семантикой и валидностью, а не выравниванием.
 

korpus

злой бобёр
zerkms, красота html-кода тоже важна, хотя бы чтобы самому в ней разбираться.

A1x, не думаю, что то так. Там может и пробел проскочить, а он как раз и не "съедается".

Раз такое дело, наверное, надо пробел после символов ?> добавлять. Если два перевода строки делать, то это ставит в несоответствие и скрипт и то что выводится в браузер.
Спасибо всем за участие в дискуссии.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
>красота html-кода тоже важна
ой, я тебя понимаю, это же так приятно бывает - нажать Ctrl-U, полюбоваться милыми сердцу строчками, когда все чистенько, аккуратненько, как в тетрадки у отличницы, посидеть, повспоминать, как писал каждую строчку

но реальность сурова
 

Духовность™

Продвинутый новичок
Раз такое дело, наверное, надо пробел после символов ?> добавлять. Если два перевода строки делать, то это ставит в несоответствие и скрипт и то что выводится в браузер.
пробел может "съесть" редактор, убивающий при сохранении лишние пробелы. В несоответствие два newline ничего не ставят - один "съедется", один остается.

красота html-кода тоже важна, хотя бы чтобы самому в ней разбираться
ага. в ШАБЛОНАХ она важна. В самом выводе эта красота никому не нужна.
 

korpus

злой бобёр
grigori, triumvirat, свой код портить и поганить полюбому не хочется. Наверное, лучше будет, если код и вёрстку грамотно делать :)
 

zerkms

TDD infected
Команда форума
Когда верстальщику делать нечего - он выравнивает отступы в браузерах (с) народная мудрость.
 

Духовность™

Продвинутый новичок
korpus
причем тут "портить и поганить"? Зачем тебе красиво сгенерированный HTML? Конечный HTML вообще надо очищать от всех лишних newline символов между тегами.

-~{}~ 12.08.10 17:20:

я вот когда машину купил, так первое время пылинки внутри подкапотного пространства сдувал. стремление красиво вывод HTML - из той же серии неадекватности
 

korpus

злой бобёр
Всеравно не согласен. Я прежде всего верстаю красиво и понятно для себя (так меньше ошибок получается), а уж потом это делаю для исходного кода в браузере. И при этом, если я где-то задал перевод строки, то он там и должен быть!
Wicked, там если походить по разделу можно увидеть комментарии такого же характера. Программисты замечают, что первый перенос строки убирается. Я целых три поста насчитал, где на это указывается.

-~{}~ 12.08.10 18:51:

zerkms, просмотри исходный код любого грамотного сайта. Почти все грамотные верстальщики пытаются верстать аккуратно.
 

StUV

Rotaredom
korpus
строка с пхп-кодом - не объект разметки
поставь в конце кода echo "\n"; и забей
 

korpus

злой бобёр
Заканчиваем дискуссию. Забъём на этот перевод строки, мы ничего не можем изменить =(
 

zerkms

TDD infected
Команда форума
zerkms, просмотри исходный код любого грамотного сайта. Почти все грамотные верстальщики пытаются верстать аккуратно.
покажи, пожалуйста, пару-тройку таких грамотных сайтов.
 

Wicked

Новичок
Wicked, там если походить по разделу можно увидеть комментарии такого же характера. Программисты замечают, что первый перенос строки убирается. Я целых три поста насчитал, где на это указывается.
это вместо того, чтобы просто прочитать "The closing tag for the block will include the immediately trailing newline if one is present." в первом абзаце и понять, что это не баг, а фича? :)
 
Сверху