Любые идеи, почему отформатированный текст из БД, когда эхо-аут в php теряет свое форматирование, т.е. нет новых строк? Благодаря!
Используйте nl2br()
.
Браузер игнорирует новые строки. Вот почему вы видите весь текст без разрывов строк. nl2br () преобразует новые строки в теги <br />
, которые отображаются в виде новых строк в браузерах.
Если вы хотите отобразить текст в <textarea>
, вам не нужно преобразовывать все новые строки в <br />
. В любом случае, если вы это сделаете … вы увидите « <br />
» как текст в новых строках.
Поскольку для форматирования нет html-тегов! Попробуйте функцию nl2br .
Вы можете попробовать добавить nl2br()
…
что-то вроде этого: echo nl2br($your_text_variable);
Он должен работать 😉
Это поведение по умолчанию для всех пользовательских агентов. Если вы посмотрите на источник страницы, вы увидите, что ваш текст имеет то же форматирование, что и в базе данных (или в текстовом поле).
Причина вашего замешательства, вероятно, в том, что вы когда-то видели текст в <textarea>
, который отображает предварительно отформатированный текст, не интерпретирует теги, а в другом случае текст интерпретируется (в этом случае пробелы не важны).
В браузерах не отображаются новые строки, если они специально не заданы – используя тег или теги уровня блока.
Нет тегов == нет новых строк.
Если вы сохраняете предварительно отформатированный текст в базе данных,
вы должны обернуть вывод в <pre>
.
Вы можете конвертировать символы форматирования в теги HTML, которые вам нужны, с помощью набора функций, таких как nl2br
, str_replace
и т. Д.
Вы также можете исправить свою структуру, чтобы хранить HTML в базе данных, а не просто текст (однако разметка выглядит как лучшее решение).
См. Аналогичный вопрос:
Разница между двумя отображаемыми вами изображениями заключается в том, что у одного есть текст в <textarea></textarea>
а другой нет … если вы хотите 1: 1: <textarea><?php echo $yourVariable;?></textarea>
Он выводит то, что вы говорите для вывода. Если текст предварительно отформатирован, поместите его в <pre></pre>
HTML <pre></pre>
в свой выходной скрипт.