[Мой новый адрес]
Я принимаю ввод текста в формате HTML как <textarea>
. Предположим, что пользователь ввел следующий текст:
1. Hello World 2. Hi World 3. Hola
Мой PHP-код вставляет в таблицу как: 1. Hello World\r\n2. Hi World\r\n\r\n3. Hola
1. Hello World\r\n2. Hi World\r\n\r\n3. Hola
Я показываю этот текст в элемент DIV, используя метод ниже (предположим, что $text
извлекается из базы данных):
<div><?php echo $text ?></div>
Результат, который я получаю: 1. Hello World 2. Hi World 3. Hola
Как получить точный результат по мере ввода пользователя? Для меня сейчас важно только пробелы, вкладки и новые строковые символы. Как упоминалось в приведенных ниже ответах, nl2br()
не предлагается. Любым другим путем?
[Мой старый вопрос] Я хочу сохранить форматированный текст в таблицу mysql. Отформатированный, я имею в виду сохранение правильных жирных символов, курсив, подчеркивание, пробелы, табуляции, знаки препинания, символы новой строки и т. Д.
Если вышеуказанное невозможно, если я могу сохранить следующее форматирование, то и мое требование выполняется:
Существует ли какой-либо тип данных, который может хранить такие данные? Как насчет типов данных VARCHAR, TEXT и CHAR? Пожалуйста помоги!
Например: Если я набираю следующий текст:
Hi! Hello there!
то он НЕ должен печатать как
Hi! Hello there!
Необработанный текст включает только символы, а не форматирование, как жирный, курсив или подчеркивание. Вкладки, знаки препинания и символ новой строки являются символами, поэтому простой varchar будет делать, если вам действительно нужно это.
Но вам нужно принять решение по протоколу форматирования, если вам нужен жирный, курсив и подчеркнутый текст: HTML, синтаксис вики, RTF и т. Д. Если этот формат является текстовым, будет работать varchar. Если он двоичный, вам понадобится blob.
Если у вас есть новые строки в тексте, и он отображается в одной строке, это, вероятно, потому, что вы выводите его на HTML-страницу, где последовательности символов пробела (табуляции, пробелы, символы новой строки и т. Д.) Преобразуются в простое пространство. Используйте <pre>your HTML-escaped text here</pre>
, и он будет правильно отображать новые строки, вкладки и несколько пробелов.
Пространства и пунктуация сохраняются.
Если вы их не видите, вы, вероятно, выводите текст в документе HTML и забываете отмечать его как HTML: помните, веб-браузеры игнорируют новые строки и последовательные пробелы в виде открытого текста.
Что касается форматирования, как полужирный, вам нужно придумать какой-то способ разметки вашего текста, чтобы сохранить информацию о форматировании. Вы можете рассмотреть HTML или Markdown.
Я думаю, вы можете хранить с utf_encode()
. и получить его с помощью utf_decode()
. Вы можете увидеть функцию n12br
PHP.
— РЕДАКТИРОВАТЬ —
Я base64_encode()
using base64_encode()
и получаю использование base64_decode()
. Закладки, пробелы и специальные символы сохраняются.