如何将内容段落转换为存储在 mysql 中?

Posted

技术标签:

【中文标题】如何将内容段落转换为存储在 mysql 中?【英文标题】:how to convert content paragraph to store in mysql? 【发布时间】:2018-10-21 16:46:59 【问题描述】:

我在表单中使用 Bootstrap Summernote。我通过 Jquery-Ajax 在 php 中插入数据。现在我有一段要在 Summernote 编辑器中输入。我想转换编辑器中输入的特殊字符。

编辑内容如下:

“Lorem ipsum dolor sit amet,consectetur adipiscing elit。 Nunc ac ullamcorper enim。 Nam consectetur aliquam consequat。 Quisque in lorem porta vehicula et eget quam”

Vivamus ornare ante vel tincidunt efficitur。 Ut et semper diam,非 aliquet elit。 Nunc vulputate gravida magna。 Vivamus malesuada, nisl ac placerat ultricies - purus ligula venenatis neque, et tristique massa urna id risus。 Nam laoreet,dui ut congue elementum,sapien lectus congue tortor,aliquam lorem sapien mattis arcu。 Mauris dapibus lorem eleifend lacus euismod faucibus。 Nullam congue, dolor nec tempor feugiat, quam ligula congue lacus, sat amet aliquet orci velit id turpis。

我应该如何编码此文本以存储在数据库中并解码以在 html 页面中与段落相同的视图?我关心的是如何在 php-mysql 中编码-解码特殊字符?

【问题讨论】:

【参考方案1】:

在 MySQL 中,您有 TEXT and BLOB 类型,用于存储大量数据。

与 VARCHAR 的区别在于,它们存储在表之外的某个外部位置,并且仅由记录中的指针引用。因此,它们比 VARCHAR 慢,但优点是允许您存储更多数据。提到的类型可以包含最大长度为2^16字节的数据。如果您需要存储更多数据,您可以使用 LONGBLOB、LONGTEXT 最多 2^32。

【讨论】:

我关心的不是列的长度。我关心的是如何在 php-mysql 中编码-解码特殊字符?【参考方案2】:

请注意,如果这将是一个公共站点,我建议您在将任何允许用户输入的构建部署到生产之前阅读并理解 SQL Injection 和 Cross-site scripting (XSS) 攻击。以下函数将不考虑任何一个。

要按原样安全存储文本内容,您可以使用以下 create_safe_string 函数使字符串 SQL 在 INSERT 时安全,并在再次显示内容时创建_unsafe_string:

    function create_safe_string($root)
    
        return htmlentities(trim(str_replace("\\", "", $root)), ENT_QUOTES | ENT_IGNORE, "UTF-8", true);
    

    function create_unsafe_string($root)
    
        return html_entity_decode(trim($root), ENT_QUOTES, "UTF-8");
    

【讨论】:

以上是关于如何将内容段落转换为存储在 mysql 中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将文本文件的内容转换为单个变量? (java) [重复]

将字符串转换为 HTML 以通过 WebMethod 注入段落

如何将 Google 输入的数字字符串转换为整数作为存储到 MySql DB 中?

如何将波斯语(波斯语)段落转换为 Javascript 中的单词列表

如何在谷歌应用脚​​本中将段落 html 字符串转换为没有 html 标签的纯文本?

我们如何将字符串转换为日期时间并将其存储在 varchar 中