[PHP / MySQL]: есть ли способ сохранить текст в Rich Text Format в таблице MySQL? - PullRequest
2 голосов
/ 24 октября 2009

Я дал пользователю форму ввода для ввода значений, которые хранятся в таблице MySQL. Существует один столбец с именем «Сведения о проекте», в котором пользователь может ввести до 200 символов, и этот столбец имеет тип «varchar».

До сих пор все в порядке. Проблема начинается, когда детали проекта содержат ряд точек, которые должны быть перечислены на странице HTML как:

(1) .........
(2) .........
(3) .........

Неясно, содержит ли детали проекта одну строку, один абзац, простой текст или нумерованный список.

Есть ли способ сохранить детали проекта в формате расширенного текста в таблице MySQL, и когда PHP показывает страницу моего сайта, текст отображается в том виде, в котором он был вставлен?

Ответы [ 5 ]

5 голосов
/ 24 октября 2009

Если вы хотите сохранить что-то вроде расширенного текстового формата, вы, вероятно, захотите поместить его в поле BLOB: http://dev.mysql.com/doc/refman/5.0/en/blob.html, которому не присвоен фактический набор символов

Могу ли я спросить, почему вы хотите это сделать? Почему бы не использовать один из многих форматированных текстовых редакторов, которые преобразуют вашу информацию в HTML (например, tinyMCE ), которую вы можете хранить там, как есть, или пропустить ее через фильтр Html-> Textile или что-то подобное.

3 голосов
/ 24 октября 2009

Возможно, вы захотите использовать простой язык разметки, например Уценка или Текстиль . Это позволяет вам взять обычный текст, а затем отобразить его как HTML.

Если этого не сделать, вы можете просто дословно отобразить текст в тегах <pre>.

1 голос
/ 24 октября 2009

Если вы действительно используете RTF, вам может понадобиться RTF-to-HTML-Converter, быстрый поиск принес: http://directory.fsf.org/project/rtf2html/ (не проверено). Это то, что вы имели в виду?

Какой код вы храните в MySQL-Database, зависит от вас, но Varchar, вероятно, не лучший тип поля; Вы должны рассмотреть вопрос об изменении его в текстовое поле.

0 голосов
/ 10 мая 2015

Я шифрую с помощью base64_encode () и для получения я использую base64_decode (). Вкладки, пробелы и специальные символы сохраняются.

$statement->execute(array(':cemail' => $c_email,
':ctel' => $c_tel, ':msg' => base64_encode($c_msg)));

$msg = $rd['texe;];
$msg = base64_decode($msg)

отлично работает для меня

0 голосов
/ 24 октября 2009

RTF не правильный путь, потому что он неправильно интерпретируется веб-браузерами.
Вы должны использовать некоторый язык разметки, такой как Markdown , тот, который используется здесь.

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