我想在MySQL中的TEXT列中存储字符串。
字符串主要由
组成,这是主要问题,MySQL(和CodeIgniter)将它们转换为空格。它们很重要,因为字符串只有适当的间距才有意义。
我考虑过将
转换为<div class='whitespace'></div>
,以便我可以使用CSS设置样式,但它会使MySQL列更大。
那么如何在MySQL数据库中有效地存储这样的字符串呢?
感谢您的帮助!
答案 0 :(得分:4)
使用htmlentities(http://www.php.net/htmlentities)
echo htmlentities('Hi there');
// outputs
// Hi there
echo 'Hi 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(" " => " "));
}
function getDisplayString($str) {
return strtr($str, array(" " => " "));
}
将原始字符串存储在数据库中:
$str = file_get_contents('html_file.html');
$query = "INSERT INTO table_name (my_text) VALUES ('" . getRawString($str) . "')";
// Execute query...
从数据库中获取并显示它:
echo getDisplayString($strFromDB);