TinyMCE и двойные кавычки

Автор: Aport Суббота, Январь 31st, 2015 Нет комментариев

Рубрика: Язык PHP

У тебя тоже TinyMCE заменяет мнемоник двойной кавычки " на двойную кавычку? Тогда тебе понравится следующее решение проблемы.

Хоть разработчики TinyMCE уверяют что указание entities поможет, на самом деле оно не работает!

В этом случае нам поможет замена » на мнемоник при сохранении результата на сервере.

В CMS Yapro это сделано так:

$str = ’0<p>1″2</p>3<p>4″5</p>6z7′;// это текст в котором есть двойные кавычки

if($escape = preg_replace(‘/<(.+)>/sUei’, «HTMLSave(‘<\\1>’)», $str)){// меняем все теги на инкрементные хэши
$str = HTMLBack(str_replace(‘»‘,’&quot;’,$escape));// меняем » на &quot; и возвращаем наши теги на место
}

Вот таким простым образом мы побороли наш любимый TinyMCE.

Надеюсь, принцип я объяснил достаточно понятно, а следующий абзац объяснит работу применяемых фукций.

Функция HTMLSave сохраняет заданную строку в массив $GLOBALS['HTML']['before'], добавляет инкремент строки (для ее восстановления) в массив $GLOBALS['HTML']['after'], и возвращает инкремент для замены данной строки. А функция HTMLBack находит в тексте ИНКРЕМЕНТ строки, и заменяет его на реальные данные строки из массива $GLOBALS['HTML']['before']

 

Источник: yapro.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты