[PHP / MySQL]:有没有办法在MySQL表格中以RTF格式存储文本?

时间:2009-10-24 11:49:03

标签: php mysql

我已向用户提供了Entry表格,以输入存储在MySQL表格中的值。有一列名为“项目详细信息”,其中用户最多可输入200个字符,此列的类型为“varchar”。

直到这里一切都很好。当项目详细信息包含要在HTML页面上列出的许多点时,问题就开始了:

(1).........
(2).........
(3).........

不确定项目详情是一行,一段,简单文本还是编号列表。

有没有办法在MySQL表格中以富文本格式保存项目详细信息,当PHP显示我的网站页面时,文本会在粘贴时列出?

5 个答案:

答案 0 :(得分:5)

如果您想存储类似富文本格式的内容,您可能希望将其放入BLOB字段:http://dev.mysql.com/doc/refman/5.0/en/blob.html没有分配给它的实际字符集

我可以问,你为什么要那样做?为什么不使用许多富文本编辑器中的一个将您的信息转换为HTML(如tinyMCE),您可以从那里按原样存储或通过Html-> Textile过滤器或类似的东西传递它。 / p>

答案 1 :(得分:3)

您可能需要考虑使用简单的标记语言,例如MarkdownTextile。这些允许您使用自然的纯文本,然后将其呈现为HTML。

如果不这样做,您只需在<pre>代码中逐字显示文字。

答案 2 :(得分:1)

如果你真的使用RTF,你可能需要的是RTF到HTML转换器,快速搜索带来了这个:http://directory.fsf.org/project/rtf2html/(未经测试)。这是你的意思吗?

您在MySQL数据库中存储的代码类型取决于您,但Varchar可能不是最佳字段类型;您应该考虑将其更改为文本字段。

答案 3 :(得分:0)

RTF不是正确的方法,因为网页浏览器无法正确解释它 您应该使用一些标记语言,例如Markdown,这里使用的标记语言。

答案 4 :(得分:0)

我使用base64_encode()进行加密,并使用base64_decode()。 会保留标签,空格和特殊字符。

$statement->execute(array(':cemail' => $c_email,
':ctel' => $c_tel, ':msg' => base64_encode($c_msg)));

$msg = $rd['texe;];
$msg = base64_decode($msg)

完美适合我