\ n и \ r \ n не скрываются, когда они печатаются в браузере

Я не уверен, что это проблема Ubuntu, Apache или PHP.

Следующие базовые сценарии не отображают новую строку в моем браузере Firefox.

  1. echo "this is not \n creating a new line";
  2. echo "this is not \r\n creating a new line";
  3. echo "this is not creating a new line";

В настоящее время я изучаю PHP и не знаю, где вообще начать решать этот. Все, что я знаю по Google, это то, что вышеприведенные 3 должны работать.

Это работает

  1. 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>
-1
задан 8 August 2019 в 00:46

2 ответа

Новая строка в исходном коде 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
1
ответ дан 23 October 2019 в 07:01

AFAIK, строки повреждаются, сделаны с <br> или <br /> теги.

можно преобразовать \n в <br /> с nl2br функция:

<?php
    $line = "First line\nSecond line."
    echo nl2br($line);
?>
0
ответ дан 23 October 2019 в 07:01

Другие вопросы по тегам:

Похожие вопросы: