Я использую 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);
Кажется, что func set_value()
функции CodeIgniter как- set_value()
действует как htmlspecialchars()
. Поэтому, если вы получаете <any_tag> в 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, а вместо этого возвращать опубликованные данные.
Для людей, которые могут иметь такую же проблему с 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, а вместо этого возвращать опубликованные данные.
Спасибо, Корамба, за то, что заставил меня осознать мою ошибку.