将格式化文本从 textarea 保存到数据库
Posted
技术标签:
【中文标题】将格式化文本从 textarea 保存到数据库【英文标题】:Saving formatted text from textarea to database 【发布时间】:2013-12-15 03:02:42 【问题描述】:是否可以从文本区域保存格式化文本?我已经用 ckeditor 插件嵌入了我的 textarea,我想知道是否可以在数据库中保存格式化文本(例如,我将字体大小更改为 9)?还是我必须更改我的字段的数据类型而不是字符串?
【问题讨论】:
如果您无法保存格式,使用 ckeditor 就没有多大意义 @marchemike 我能问你为什么问这个问题吗? ps:处理格式化数据的DB列/字段类型应该是TEXT:P @Joem 我对使用 ckeditor 还很陌生,所以我想知道如何在不删除格式的情况下将数据保存到数据库,因为我需要将格式化的文本输出到单独的网页稍后的。我之前也没有尝试过使用TEXT数据类型,所以我没有想到你说的。 所以...您正在处理(格式化)的 CMS 正在删除格式吗?我的意思是你有没有尝试过什么? ps:这可能是一个复杂的答案,所以我向你询问更多信息。 【参考方案1】:CKeditor 文本区域在提交时将传递 html。那是格式化的文本。如果你输出它,它也会在页面上被格式化。
【讨论】:
【参考方案2】:好吧,你不在这里,所以让我尽可能多地给你一些提示。
-
当然可以通过CKE 端在您的数据库中插入完整的HTML 数据进行格式化(例如通过简单的字符串(例如
$formatted_data
)将数据作为HTML 页面导出)。 CKE 在提交您的工作后,会将完整的 HTML 发送到您的数据库,即 (<a href="http://www.example.com" taget="_blank"><font size=2>I love someone</font></a>
)。 CKE 在这件事上做了充分的工作。您只需执行所见即所得(所见即所得)的工作。
将保存/处理该数据的数据库字段/列应为 TEXT。
但是,根据您的 CMS(核心质量)结构,安装 CKE 一开始可能会有些复杂。即使从后端,它也可能会给您一些(安全/数据库插入)问题 - 并且再次 - 取决于您的 CMS 核心结构。如果出现如何将 CKE 给定/发送的字符转换为 DB 的问题,您会在这里找到很多答案。 http://www.php.net/manual/en/function.htmlentities.php 和这里http://www.php.net/manual/en/function.htmlspecialchars.php
无论如何,在以article['formatted_article']
方式从DB 中回显CKE 数据后,您将获得完整的HTML。字体大小、表格、行、图像、网址……一切。是的,通过单个字符串。
【讨论】:
以上是关于将格式化文本从 textarea 保存到数据库的主要内容,如果未能解决你的问题,请参考以下文章