如何将ckeditor内容保存在mysql数据库中

Posted

技术标签:

【中文标题】如何将ckeditor内容保存在mysql数据库中【英文标题】:how to save ckeditor content in mysql database 【发布时间】:2016-03-31 04:40:13 【问题描述】:

我正在使用 ckeditor 创建一个博客站点。我想使用 phpmysql 的组合将整篇文章保存在数据库中。如果我提交包含 ckeditor 的表单,我会在$_POST['editor'] 中获得编辑器的内容。我想将文章保存在 MySQL 数据库中。下图包含整个表单数据。它包括:

    标题元素内的标题。

    “editor1”元素内的文章(text,code-sn-p,image)。

$_POST['editor'] 数组看起来像:

如何将其保存到 mysql 表中?我可以将整个 editor1 元素保存在 TEXT 类型的列中吗?

【问题讨论】:

【参考方案1】:

是的,您可以将源代码存储在数据库中,这就是 Wordpress 的工作原理。

但请记住在将字符串发送到数据库之前对其进行转义,使用:

mysqli_escape_string();

当您之后获取发布数据时,PHP 只会在屏幕上打印 html

【讨论】:

内容与字符串、codesn-p 和图像混合。我怎样才能使用这个函数来只转义字符串。我应该在那个函数中传递整个“editor1”元素吗?我打算在 mysqli 上使用 PDO。PDO 中的那个功能可能相当于什么? 关于最后一行,您是在谈论从数据库中检索数据吗?【参考方案2】:

是的,您可以将整篇文章提交到数据库。但是,在您提交之前;尝试使用此功能:

function dataready($data) 
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
 

例子:

 dataready($_POST['editor']);

所以你可以使用任何你想要的 PDO 或 Mysqli。

为避免在打印文章时回显 HTML 元素,请使用此函数:

  html_entity_decode($article_text);

希望这对你有用。

附言。为您的数据库使用列类型 TEXT 很好。如果您想向该列添加更多文本,也可以使用 LONGTEXT。

【讨论】:

感谢您的准确回答。我有一个问题要问您,如果我使用 html_entity_decode 函数,当我打印帖子数组时会弹出 iframe?这会带来安全威胁吗? 欢迎您。我之前没有尝试过,但是我认为如果您在文章中包含弹出代码,那么它将无法正常工作。关于安全性,不,这不会强加安全性。但是,网站安全是一个大问题,您需要了解更多信息。 *** 对此有一些有趣的答案,您也可以在互联网上找到有关该问题的好文章,只需 google 即可。 天啊,我喜欢这个答案,摆脱了我一个月的头痛。非常感谢。【参考方案3】:

简单易用的base64_encode()

$content = base64_encode($editor_content);

当你获取数据时使用 base64_decode()

$content = base64_decode($editor_content);

【讨论】:

如此简单但完美运行,对于那些拥有非base64旧内容的人,您需要添加base64检测功能来检索非base64旧内容

以上是关于如何将ckeditor内容保存在mysql数据库中的主要内容,如果未能解决你的问题,请参考以下文章

如何将文本区域内容保存在本地存储中

excel用命令将指定的内容保存在指定的txt文件中

强制OpenGL将内容保存在内存中?

将 TextField 内容保存在自定义动态 tableView 中

如何在 MATLAB 中将 .mat 文件内容保存在内存中?

如何从 mysql 获取数据到 ckeditor textarea?