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.

В противном случае, пожалуйста, включите конкретные примеры ввода и вывода, которые портят макет вашей страницы.

Другие вопросы по тегам