У тебя тоже TinyMCE заменяет мнемоник двойной кавычки " на двойную кавычку? Тогда тебе понравится следующее решение проблемы.
Хоть разработчики TinyMCE уверяют что указание entities поможет, на самом деле оно не работает!
В этом случае нам поможет замена " на мнемоник при сохранении результата на сервере.
В CMS Yapro это сделано так:
$str = '0<p class="1">1"2</p>3<p>4"5</p>6z7';// это текст в котором есть двойные кавычки
if($escape = preg_replace('/<(.+)>/sUei', "HTMLSave('<\\1>')", $str)){// меняем все теги на инкрементные хэши
$str = HTMLBack(str_replace('"','"',$escape));// меняем " на " и возвращаем наши теги на место
}
Вот таким простым образом мы побороли наш любимый TinyMCE.
Надеюсь, принцип я объяснил достаточно понятно, а следующий абзац объяснит работу применяемых фукций.
Функция HTMLSave сохраняет заданную строку в массив $GLOBALS['HTML']['before'], добавляет инкремент строки (для ее восстановления) в массив $GLOBALS['HTML']['after'], и возвращает инкремент для замены данной строки. А функция HTMLBack находит в тексте ИНКРЕМЕНТ строки, и заменяет его на реальные данные строки из массива $GLOBALS['HTML']['before']