FCKeditor оставляет много открытых тегов - как их удалить
Поэтому я использую FCKeditor, и проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь пишет документ, иногда информация копируется из Word, иногда это записывается непосредственно в редакторе, а иногда это может быть сделано обоими способами. В БД это оставляет мне множество тегов, которые открыты и никогда не закрываются. Это резко отбрасывает мой макет, и я пытаюсь найти решение.
Я изменил файл конфигурации, чтобы вставить его в виде простого текста, который, как я предполагал, остановит форматирование Word, и он все еще делает это.
Поэтому сейчас я пытаюсь найти способ поиска открывающих тегов и удалить их до того, как информация будет отправлена в БД. Или есть какая-то функция / конфигурация FCKeditor, которую мне не хватает, чтобы помочь мне?
Любые предложения о том, как мне поступить?
Спасибо
Леви
2 ответа
Так же, как мера безопасности, которая решит обе проблемы, связанные с безопасностью (например, <script>
теги, вставляемые пользователями, например, - которые вы, вероятно, не хотите) и проблемы, связанные с презентацией (например, закрытые теги), вы можете использовать инструмент, такой как HTMLPurifier, на своем сервере, на том, что вы получаете от браузер.
Конечно, это не решит первую проблему - тот факт, что пользователи могут вводить все, что они хотят, в FCKEditor; но это гарантирует, что ваш HTML является действительным и безопасным.
На самом деле, даже если FCKEditor не получит вам недействительный HTML, вы все равно можете использовать HTMLPurifier, просто для безопасности.
Идея в том, что вы предоставляете список:
- разрешенные теги
- разрешенные атрибуты для этих тегов
И, в свою очередь, HTMLPurifier предоставляет вам чистый и действительный HTML.
Изменить: Похоже, вы столкнулись с ошибкой в редакторе. Вы можете попробовать другой и / или использовать серверный скрипт, который проходит и удаляет несопоставленные теги div.
HTML позволяет большинству тегов оставаться открытыми. Если он оставляет открытые теги, которые следует оставить закрытыми, вы можете найти белый или черный список для поиска по ним и удалить их с сервера. В противном случае вы в значительной степени застряли в понимании того, что HTML - это не XML, FCKeditor генерирует HTML, и HTML не будет проверяться как XML. Если он отбрасывает вывод на печать, попробуйте обернуть вывод FCKeditor в div.
В противном случае, пожалуйста, включите конкретные примеры ввода и вывода, которые портят макет вашей страницы.