0

我的模板中有一行需要帮助修复。

如果用户将开始<div>标签或结束标签</div>或任何其他与结构相关的 HTML 标签发布到内容中,则会导致页面上的模板混乱。

htmlentities在标题和其他形式上使用。不幸的是,我不能在这里这样做,因为内容字段有一个丰富的编辑器,我需要保持文本样式标签完整(<b><u>、颜色<i>等)。

现在,用户很容易故意弄乱模板,我想防止这种情况发生。


我的建议是:不要,并考虑在 checkstyle 中至少为那些构造函数禁用该规则。每个人都知道他们在做什么,或者可以很容易地查到这一点。努力提供真正有用的文档。

4

2 回答 2

3

最好的方法是将文本扔​​到 DOM 解析器中并让它解决所有的混乱。这样的工具可能比您可以组合的任何东西都更强大,包括解决您不知道自己可能遇到的问题。

于 2013-03-12T22:40:09.747 回答
1

既然您已经在评论中澄清了实际问题是什么,我也许可以提供帮助。问题基本上是您不希望用户输入的长词破坏页面布局。

您提出的 PHPwordwrap解决方案已经存在许多问题,其中您发现的问题(破坏您的 HTML)是最明显的。

但是,由于这个问题纯粹是不想让长词破坏您的页面布局,因此可以使用其他几种解决方案。

  1. 对任何过长的单词做一些特定的事情,而不是对整个文本。您可以为它们添加手动换行符、空格或 HTML<wbr>标记(这是一个可选的换行符,即用于连字符的目的)。或者,您甚至可以一开始就阻止用户输入疯狂的长词。

  2. CSSoverflow-x:hidden
    使用它,任何溢出框边的文本都将被隐藏,而不是打印在页面其他部分的顶部。

  3. CSSword-wrap
    有几种方法可以做到这一点,但由于浏览器支持的不同,它变得有点棘手。但这里有一个链接可以解释这一切:http ://blog.kenneth.io/blog/2012/03/04/word-wrapping-hypernation-using-css/

希望有帮助。

于 2013-03-12T23:00:01.247 回答