Почему PHP эхо-текста теряет свое форматирование? - PullRequest
7 голосов
/ 15 июля 2011

Есть идеи, почему форматированный текст из БД, когда эхо-вывод в php теряет свое форматирование, т.е. нет новых строк?Спасибо!

enter image description here

Ответы [ 6 ]

27 голосов
/ 15 июля 2011

Использование nl2br().

Новые строки игнорируются браузером.Вот почему вы видите весь текст без разрывов строк. nl2br () преобразует новые строки в <br /> теги, которые отображаются в браузерах как новые строки.

Если вы хотите отобразить текст в <textarea>, вам не нужнопреобразовать все новые строки в <br />.В любом случае, если вы сделаете это ... вы увидите "<br />" как текст в новых строках.

14 голосов
/ 15 июля 2011

Потому что нет HTML-тегов для форматирования! Попробуйте функцию nl2br .

9 голосов
/ 15 июля 2011

Вы можете попробовать добавить nl2br() функцию ...

примерно так: echo nl2br($your_text_variable);

Это должно работать; -)

6 голосов
/ 15 июля 2011

Причина

Это поведение по умолчанию для всех пользовательских агентов.Если вы посмотрите на исходный код страницы, то увидите, что ваш текст имеет тот же формат, что и в базе данных (или текстовой области).

Причина вашей путаницы, вероятно, заключается в том, что вы однажды видите текст в теге <textarea>, который отображает предварительно отформатированный текст , не интерпретирует теги, а в другом случае текстинтерпретируется (пробел в данном случае не важен).

Браузеры не отображают новые строки, если не указано иное - используется тег <br> или любые теги уровня блока.

Нет тегов == нет новых строк.

Исправление

Если вы сохраняете предварительно отформатированный текст в базе данных,
вы должны заключить вывод в <pre>tag.

Возможно, вы захотите преобразовать символы форматирования в нужные вам теги HTML, используя набор функций, таких как nl2br, str_replace и т. д.

Вы также можете исправить свою структуру для храненияHTML в базе данных вместо простого текста (однако разметка выглядит как лучшее решение).

См. аналогичный вопрос:

3 голосов
/ 15 июля 2011

Разница между двумя изображениями, которые вы показываете, состоит в том, что у одного есть текст в <textarea></textarea>, а у другого нет ... если вы хотите 1: 1: <textarea><?php echo $yourVariable;?></textarea>

2 голосов
/ 15 июля 2011

Он выводит то, что вы говорите, на вывод.Если текст предварительно отформатирован, поместите его в тег HTML в выходном скрипте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...