Есть ли способ принудительно создать новую строку после закрывающего тега php> при внедрении в html?


Я без особого успеха искал в Интернете способ заставить php выводить новую строку после закрывающего тега php ?>, чтобы мой HTML отображался так, как я его вижу, до его анализа PHP, чтобы он выглядел аккуратно и аккуратно при просмотре исходного кода html для страницы.

Я хочу, чтобы он не удалял новую строку и не приводил к завершению следующей строки и, следовательно, к нарушению формата страницы. Есть ли определенная настройка php.ini, которую я могу изменить, чтобы отключить это поведение?

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

Author: Svetlozar Angelov, 2009-12-15

7 answers

Ричард говорит следующее:

Hello <? ?>
Jello

...после PHP-разбора становится так:

 Hello Jello


Я просто добавляю дополнительную новую строку вручную, вот так:

Hello <? ?>

Jello

...давая это:

Hello
Jello
 15
Author: Derek Illchuk, 2009-12-15 15:34:39

Это старый вопрос, но чтобы сохранить новую строку, просто поставьте пробел после закрывающего тега.

Источник: http://php.net/manual/en/language.basic-syntax.instruction-separation.php

 8
Author: atw527, 2013-07-27 23:07:50

Вы можете попробовать это:

echo "output \n";

Или даже эта гораздо менее элегантная техника:

echo "output
";

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

 1
Author: erenon, 2009-12-15 15:28:19

Изменить это поведение невозможно. Чтобы было понятно, что происходит, я всегда явно помещаю символ новой строки в свои файлы шаблонов.

Hello,    

Foo: <?php echo $foo."\n"; ?>
Bar: <?php echo $foo."\n"; ?>

This concludes foo and bar.

Выходные данные:

Hello,    

Foo: foo
Bar: bar

This concludes foo and bar.
 1
Author: marcovtwout, 2013-05-16 11:22:40

Вы не всегда можете просто запустить элемент уровня блока после тега php.

Иногда вы создаете обычный текст внутри текстовой области.

В других случаях вы вообще не генерируете HTML-строки.

  • Инструкция SQL
  • текст письма
  • другие строки, отличные от HTML
 0
Author: Alex, 2010-02-08 14:40:50

Мои навязчивые привычки приводят меня к аналогичным целям. К сожалению, для этого нет элегантного решения. Два предложения:

  1. Выведите символ новой строки, в котором вы хотите разбить HTML-код следующим образом:

    echo 'Hello World'.chr(10);

  2. Команда PHP "echo" не является реальной функцией, поэтому вы не можете ее переопределить; однако вы можете создать оболочку и использовать ее вместо этого:

    function myecho($string, $newline=true)
    {
       echo $string;
       if($newline)
          echo chr(10);
    }
    

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

 0
Author: Jonesy, 2013-05-14 02:36:37

Если это вызывает у вас проблемы, вы, скорее всего, не пишете хороший HTML. Если у вас PHP отделен от HTML, то после тега ?> close просто начните с HTML-элемента уровня блока.

Вот так:

Hello <?php $php_code(); ?> <div>Something else here</div> or even <p>Something else here</p>

Который выведет:

Hello

Something else here

Если вместо этого вы пишете:

Hello <?php $php_code(); ?> Something else here

Тогда ваша проблема в том, как вы пишете HTML, а не анализируете PHP.

 -4
Author: rhodesjason, 2009-12-15 15:38:47