FCKeditor留下了很多开放标签 - 如何删除它们

时间:2009-09-16 01:39:21

标签: php javascript fckeditor

所以我使用FCKeditor,我遇到的问题是,当用户写文档时,有时会从Word复制信息,有时则直接在编辑器中编写,有时可以双向完成。这让我在数据库中留下了很多标签,这些标签是开放的,永不关闭。这大大地摆脱了我的布局,我正在努力寻找解决方案。

我更改了配置文件以粘贴为纯文本,我认为这会阻止Word格式转移,它仍在执行。

所以现在我想找到一种方法来搜索开始标记并删除它们,然后才能将信息发送到数据库。或者是否有一些FCKeditor功能/配置选项我缺少帮助我?

关于我应该如何进行的任何建议?

感谢
列维

2 个答案:

答案 0 :(得分:2)

正如安全预防措施一样,它将解决与安全相关的问题(例如用户插入的<script>标签 - 例如 - 您可能不想要的)和演示文稿相关问题(例如非封闭标签),您可以在服务器上使用HTMLPurifier之类的工具,以及从浏览器接收的内容。

当然,这不会解决第一个问题,即用户可以在FCKEditor中输入他们想要的任何内容;但它将确保您的HTML既有效又安全。

实际上,即使FCKEditor没有为您提供无效的HTML,您仍然可以使用HTMLPurifier,只是为了安全。

您的想法是提供以下列表:

  • 允许的标签
  • 允许这些标记的属性

作为回报,HTMLPurifier为您提供干净且有效的HTML。

答案 1 :(得分:0)

编辑:听起来你在编辑器中遇到了一个错误。您可以尝试使用另一个,和/或使用经过的服务器端脚本并删除不匹配的div标签。

Html允许大多数标签保持打开状态。如果它打开了应该保持关闭的标签,你可以通过白色或黑名单来搜索并剥离那些服务器端。否则,您几乎不了解HTML不是XML,FCKeditor生成HTML,HTML不会验证为XML。如果它关闭了您的打印输出,请尝试将div中的FCKeditor输出包装。

否则,请包含搞乱页面布局的输入和输出的具体示例。