如何在MySQL中存储大多数包含nbsp和br(换行符)的大字符串?

时间:2014-01-27 16:25:11

标签: php mysql sql string

我想在MySQL中的TEXT列中存储字符串。

字符串主要由 组成,这是主要问题,MySQL(和CodeIgniter)将它们转换为空格。它们很重要,因为字符串只有适当的间距才有意义。

我考虑过将&nbsp;转换为<div class='whitespace'></div>,以便我可以使用CSS设置样式,但它会使MySQL列更大。

那么如何在MySQL数据库中有效地存储这样的字符串呢?

感谢您的帮助!

3 个答案:

答案 0 :(得分:4)

使用htmlentities(http://www.php.net/htmlentities

echo htmlentities('Hi&nbsp;there');
// outputs 
// Hi&nbsp;there

echo 'Hi&nbsp;there';
// outputs
// Hi there

如果您想要解码(反向),您可以使用html_entity_decode()。 http://www.php.net/manual/en/function.html-entity-decode.php

答案 1 :(得分:2)

在将数据插入mysql之前考虑base64_encode数据。

$bigstr = base64_encode($bigstr);
/* insert to database */

在取回字符串时请记住base64_decode

答案 2 :(得分:0)

创建两个函数:

function getRawString($str) {
    return strtr($str, array("&nbsp;" => " "));
}

function getDisplayString($str) {
    return strtr($str, array(" " => "&nbsp;"));
}

将原始字符串存储在数据库中:

$str = file_get_contents('html_file.html');
$query = "INSERT INTO table_name (my_text) VALUES ('" . getRawString($str) . "')";
// Execute query...

从数据库中获取并显示它:

echo getDisplayString($strFromDB);