Причина
Это поведение по умолчанию для всех пользовательских агентов.Если вы посмотрите на исходный код страницы, то увидите, что ваш текст имеет тот же формат, что и в базе данных (или текстовой области).
Причина вашей путаницы, вероятно, заключается в том, что вы однажды видите текст в теге <textarea>
, который отображает предварительно отформатированный текст , не интерпретирует теги, а в другом случае текстинтерпретируется (пробел в данном случае не важен).
Браузеры не отображают новые строки, если не указано иное - используется тег <br>
или любые теги уровня блока.
Нет тегов == нет новых строк.
Исправление
Если вы сохраняете предварительно отформатированный текст в базе данных,
вы должны заключить вывод в <pre>
tag.
Возможно, вы захотите преобразовать символы форматирования в нужные вам теги HTML, используя набор функций, таких как nl2br
, str_replace
и т. д.
Вы также можете исправить свою структуру для храненияHTML в базе данных вместо простого текста (однако разметка выглядит как лучшее решение).
См. аналогичный вопрос: