3

我正在使用 FuelPHP 和 TinyMCE 编辑器构建一个简单的博客系统。

当我在 TinyMCE(或 CKEditor,没关系)中格式化我的文本并将其保存在我的数据库中时,一切正常。但是,当我打印回文本时,令人惊讶的是,我的浏览器不会呈现 html 标签并将它们显示为纯文本!

我已经检查过,页面中没有任何类型的内容CDATA,这可能会导致问题。

这是它的渲染方式:

它是如何呈现的

<h2>但是,在使用 FireBug 检查问题时,我注意到在打印标签之前有很多空格!如果我只是在空格中做一个小改动(删除一个或添加另一个),那么浏览器将呈现标签并正确显示文本!

你们能帮我解决这个问题吗?这真的很奇怪。

4

3 回答 3

2

当您将数据保存在数据库中时,出于某些安全原因,您只需要对其进行编码

html_entity_decode("string retrived from database");

然后打印出来。

于 2013-08-17T20:14:22.477 回答
0

如何将数据传递给视图?你能显示代码吗?

如果您使用View 类,则有一种方法可以让您选择何时对文本进行编码(默认为yes)。

于 2013-08-29T12:55:08.930 回答
0

set_safe()您可以使用该方法或使用 中的$filter参数,而不是编码和解码set()

像这样:

$view->set_safe('body', $data);

或者

$view->set('body', $data, false);

或将您的视图列入白名单。这将阻止解码。

于 2013-08-28T10:53:48.587 回答