PHP пропускает возврат - PullRequest
       11

PHP пропускает возврат

1 голос
/ 23 марта 2010

, когда возврат каретки следует за закрывающим тегом php, php его не печатает

Как я могу это изменить?

Большое спасибо

Ответы [ 3 ]

6 голосов
/ 23 марта 2010

Это нормальное поведение, и его нельзя изменить: символ новой строки после закрытия ?> всегда игнорируется.


Вот ссылка в FAQ по руководству по PHP: Привет,что случилось с моими новыми строками?
(цитирование, выделение мое)

<code><pre>
<?php echo "This should be the first line."; ?>
<?php echo "This should show up after the new line above."; ?>

В PHP окончание для блокакода "?>" или "?>\n" (где \n означает перевод строки).
Таким образом, в приведенном выше примере отраженные предложения будут в одной строке , потому что PHP пропускает символы новой строки после окончания блока .
Это означает, что вам нужно вставлять дополнительную новую строку после каждого блока кода PHP, чтобы он выводил одну новую строку.

Почему PHP делает это?
Потому что при форматировании обычного HTML это обычно облегчает вашу жизнь, потому что вы не хотите этой новой строки, но вам придется создавать очень длинные строки или иным образом делать исходный код страницы нечитаемым для достижения этого эффекта.


И вот несколько интересных прочтений об этом:

0 голосов
/ 23 марта 2010

Это предполагаемое поведение (см. Выход из HTML ):

[…] когда PHP нажимает на закрывающие теги ?>, он просто начинает выводить все, что находит (за исключением следующего следующего символа новой строки - см. разделение инструкций ) […]

0 голосов
/ 23 марта 2010

Это поведение языка по умолчанию.

Если вам нужен разрыв строки, вы ставите echo "\n" или echo "<br>" в качестве последней строки скрипта.

...