Я пишу это:
echo "foo"; echo "\n"; echo "bar";
и "bar" не записывается в строке ниже.
Что я делаю не так?
Javi
Новые строки в HTML выражаются через, а не через \n
.
Использование \n
в PHP создает новую строку в исходном коде, а макет исходного кода HTML не связан с макетом экрана HTML.
Если вы хотите написать простой текст, вы должны убедиться, что для типа содержимого установлено значение Content-Type: text/plain
. Пример:
header('Content-Type: text/plain');
Если вы имеете дело с HTML, у вас есть два варианта. Один из них – вставить новую строку, используя (или <br />
для XHTML). Другой – положить обычный текст в элемент <pre>
(в этом случае «pre» означает preformatted).
Если вы хотите, чтобы новый строковый символ был вставлен в обычный текстовый поток, вы могли бы использовать независимый от ОС глобальный PHP_EOL
echo "foo"; echo PHP_EOL ; echo "bar";
В HTML-терминах вы увидите новую строку между foo и bar, если будете смотреть на исходный код страницы.
ergo, полезно, если вы выставляете say, цикл значений для поля выбора, и вы получаете исходный код html, который «красивее» или более легко читается для вас позже. например
foreach( $dogs as $dog ) echo "<option>$dog</option>" . PHP_EOL ;
PHP генерирует HTML. Вы можете:
echo "foo"; echo "<br />\n"; echo "bar";
если в тексте есть символы новой строки, используйте функцию nl2br php:
<?php $string = "foo"."\n"."bar"; echo nl2br($string); ?>
Это должно хорошо выглядеть в браузере
Предполагая, что вы просматриваете вывод в веб-браузере, у вас есть как минимум два варианта:
Окружать текстовый блок с помощью инструкций <pre>
Измените свой \n
на тег HTML ( <br/>
также и сделайте)
Поскольку он не упоминался, вы также можете использовать свойство white-space CSS
body{ white-space:pre-wrap; }
Что говорит браузеру сохранять пробелы, чтобы
<body> <?php echo "hello\nthere"; ?> </body>
Будет отображаться
hello there
Мы можем использовать \ n как новую строку в php.
<?php echo"Fo\n"; echo"Pro"; ?>
Вывод:
Fo
профессионал
Он будет записан на новой строке, если вы изучите исходный код страницы. Если вы хотите, чтобы он появлялся на новой строке, когда он отображается в браузере, вместо этого вы должны использовать тег <br />
.
Это отлично работает для меня …
echo nl2br("\n");
Ссылка: http://www.w3schools.com/php/func_string_nl2br.asp
Надеюсь, поможет 🙂
echo "foo<br />bar";
Мы можем применить \n
в php, используя два типа
Использование CSS
body { white-space: pre-wrap; }
Что говорит браузеру сохранять пробелы, чтобы
<body> <?php echo "Fo\n Pro"; ?> </body>
Результат:
Fo
профессионал
Используя nl2br
nl2br
: Вставляет разрывы строк HTML перед всеми символами новой строки в строке
<?php echo nl2br("Fo.\nPro."); ?>
результат
Fo.
Pro.