CKEditor在编辑器中显示HTML标签

时间:2013-03-22 09:53:16

标签: php ckeditor

我正在使用CKEditor并将内容保存到MySQL数据库。当我尝试在编辑器中再次编辑内容时,我将HTML标记显示为文本,例如:

my test<br />and second line

如何让它再次正确显示在编辑器中?

我一直在摆弄htmlentities和html_entity_decode以及CKEditor相关的设置超过一个小时,但没有用。

   $config = array();
   $config['enterMode'] = 2;
   $config['shiftEnterMode'] = 1;
   //$config['basicEntities'] = FALSE;
   //$config['entities'] = FALSE;
   //$config['entities_greek'] = FALSE;
   //$config['entities_latin'] = FALSE;
   //$config['htmlDecodeOutput'] = TRUE;

   $ck_editor->editor("sec1_content", $default_value, $config);

2 个答案:

答案 0 :(得分:6)

似乎CodeIgniter的func set_value()在某种程度上与htmlspecialchars()类似。所以如果你得到&lt; any_tag&gt;在CKEditor上,这种解决方法可以帮助您。改变

$ck_editor->editor("sec1_content", set_value('sec1_content', html_entity_decode($default_value)), $config);

对此:

$ck_editor->editor("sec1_content", html_entity_decode(set_value('sec1_content', $default_value)), $config);
  

PoloRM
  将html_entity_decode放在set_value附近。原因很明显是因为set_value方法可能不使用$ default_value参数,而是返回发布的数据。

答案 1 :(得分:0)

对于可能与CodeIgniter / CKEditor存在相同问题的人:

解决此问题并仍然使用CodeIgniter set_value()方法的方法如下:

$ck_editor->editor("sec1_content", set_value('sec1_content', html_entity_decode($default_value)), $config);

这样做:

$ck_editor->editor("sec1_content", html_entity_decode(set_value('sec1_content', $default_value)), $config);

将html_entity_decode放在set_value附近。原因很明显,因为set_value方法可能不使用$ default_value参数,而是返回发布的数据。

感谢coramba让我意识到自己的错误。