Intereting Posts
Проблема PHP с "__php_incomplete_class" Передача данных с JavaScript на PHP Что лучше перенаправить, разрешение экрана или пользовательский агент? PHP: array_merge () в альтернативном порядке (почтовый заказ)? Как создать цикл для этого выпадающего меню? Отправка строки на страницу PHP и отображение страницы PHP. Строка Drupal module jQuery Ошибка размещения сценария PHP Как получить список друзей пользователя через facebook? Возвращаемые значения метода и исключения Почему zend_form не может заполнять входы с записями из Firebird db с диакритическими символами? paypal parameater для создания повторяющегося профиля дает ошибку, пожалуйста, помогите мне Magento – используя $ this-> getPriceHtml на настраиваемом шаблоне страницы Создание подписи для заголовка аутентификации в PHP – Paypal Система входа в PHP с использованием Cookies и соленых хешей Как сравнить одно значение ключа массива с другим значением индекса массива?

Как сохранить форматированный текст в таблице MySQL?

[Мой новый адрес]

Я принимаю ввод текста в формате 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. Отформатированный, я имею в виду сохранение правильных жирных символов, курсив, подчеркивание, пробелы, табуляции, знаки препинания, символы новой строки и т. Д.

Если вышеуказанное невозможно, если я могу сохранить следующее форматирование, то и мое требование выполняется:

  1. пробелы и вкладки
  2. знаки препинания и символы новой строки

Существует ли какой-либо тип данных, который может хранить такие данные? Как насчет типов данных 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() . Закладки, пробелы и специальные символы сохраняются.