Ваш текст сохраняется в базе данных только в том случае, если вы помещаете его в достаточно длинное текстовое поле (например, TEXT
), включая символы новой строки в пользовательском вводе.
Ваша проблема заключается в том, как дисплей текст отформатирован так, как пользователь видел его при входе в него. Это более общая проблема, и это связано только с тем, как HTML обрабатывает пробелы.
Один из подходов заключался бы в том, чтобы называть комментарии nl2br
, как говорит Икке. Это заменит все новые строки (которые браузер игнорирует) с тегами <br>
, которые оказывают заметное влияние на визуализированный вывод.
Другой вариант - разместить текст внутри тега <pre>...</pre>
. Это заставит браузер отображать его с сохраненными пробелами.
Это действительно то, что более удобно и подходит для вас.
Update: Просто чтобы быть ясно: сделать не изменения пользовательского ввода перед тем вставив его в базе данных (если это не часть вашей проверки входных данных, как, например, зачистки HTML теги от входа). Храните его в «нетронутом» формате и делайте только некоторую обработку на нем до того, как вы получите данные. Таким образом, у вас всегда есть возможность выполнить правильную обработку, если ваш выходной канал изменится в будущем (например, экспорт комментариев в текстовый файл и отображение их как HTML).
Каков тип поля базы данных? Как вы подталкиваете его в базу данных? Является ли контент богатым текстом, как и в виде разметки, открытого текста? и т. д. –