Я пишу это:
echo "foo";
echo "\n";
echo "bar";
и "bar" не записаны в строке ниже.
Что я делаю неправильно?
Хави
Я пишу это:
echo "foo";
echo "\n";
echo "bar";
и "bar" не записаны в строке ниже.
Что я делаю неправильно?
Хави
Новые строки в HTML выражаются через <br>
, а не через \n
.
Использование \n
в PHP создает новую строку в исходном коде, а макет исходного кода HTML не связан с компоновкой экрана HTML.
Если вы хотите написать простой текст, вы должны убедиться, что для типа контента установлено значение Content-Type: text/plain
. Пример:
header('Content-Type: text/plain');
Если вы имеете дело с HTML, у вас есть два варианта. Один из них - вставить новую строку, используя <br>
(Or <br />
для XHTML). Другой заключается в том, чтобы поместить простой текст в элемент <pre>
(в этом случае "pre" означает предварительно отформатированный).
Если вы хотите, чтобы новый строковый символ был вставлен в обычный текстовый поток, вы можете использовать независимый от ОС глобальный 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>
(<br/>
также будет делать)
Поскольку он не упоминался, вы также можете использовать свойство белого пробела CSS
body{
white-space:pre-wrap;
}
Что говорит браузеру сохранять пробелы, чтобы
<body>
<?php
echo "hello\nthere";
?>
</body>
Отобразится
hello
there
Мы можем использовать \n как новую строку в php.
<?php
echo"Fo\n";
echo"Pro";
?>
Выход:
Fo
Pro
Он будет записан в новой строке, если вы изучите исходный код страницы. Если вы хотите, чтобы он появлялся в новой строке, когда он отображается в браузере, вместо этого вы должны использовать тег <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
Pro
Используя nl2br
nl2br
: Вставляет разрывы строк HTML перед всеми символами новой строки в строке
<?php
echo nl2br("Fo.\nPro.");
?>
Результат
Fo.
Pro.