Я не уверен, что это проблема Ubuntu, Apache или PHP.
Следующие базовые сценарии не отображают новую строку в моем браузере Firefox.
echo "this is not \n creating a new line";
echo "this is not \r\n creating a new line";
echo "this is not
creating a new line";
В настоящее время я изучаю PHP и не знаю, где вообще начать решать этот. Все, что я знаю по Google, это то, что вышеприведенные 3 должны работать.
Это работает
echo "this does <br> create a new line";
Моя настройка:
Ubuntu 18.04.2
Apache/ 2.4.29 (ubuntu)
PHP 7.3.7-2+ubuntu18.04.1
Fireforx Developer (Quantum) 68.0.1 (64bit)
<час> Спасибо @ cmak.fr и @Mathieu за ваши ответы. Теперь это имеет смысл. Я также нашел эту ссылку после прочтения вашего ответа https://www.webmasterworld.com/php/3127164.htm .
Немного слежения. Я обнаружил, что тег <pre>
также работает в сочетании с \n
. Почему это так?
<html>
<body>
<h1>Some h1</h1>
<p>Some text</p>
<pre>
<?php
echo "this is not \n creating a new line";?>
</pre>
</body>
</html>
Новая строка в исходном коде HTML не отображена как новая строка в браузере.
Смотрят на исходный код Ваших сгенерированных страниц HTML, Вы найдете свои новые строки
, HTML-код новой строки <br>
В коротком
<?php echo "\r\n"; ?> // Writes a new line in the output stream
<?php echo "<br>"; ?> // Writes the newline html code
Другой пример:
<php
echo "<html><body>A<br>\r\nB<br>C\r\n</body></html>"
?>
произведет необработанный текст:
<html><body>A<br>
B<br>C
</body></html>
браузер А отобразит это
A
B
C
AFAIK, строки повреждаются, сделаны с <br>
или <br />
теги.
можно преобразовать \n
в <br />
с nl2br
функция:
<?php
$line = "First line\nSecond line."
echo nl2br($line);
?>