【问题标题】:Containing markup INSIDE data包含标记 INSIDE 数据
【发布时间】:2012-09-01 18:12:12
【问题描述】:

是的,我正在努力显示数据库中包含标记的数据!我正在显示的一个特定字段有一个开放的粗体标签,但没有关闭的粗体标签。我正在尝试“包含”此标记,以免影响页面的其余部分。

来自我的数据库的数据是这样的文本:

this is soem nasty <b>data

(注意缺少结束标签)

如果我将标记包含在 div 中,则页面的其余部分为粗体:

<div>this is some nasty <b>data</div>

但是,如果我将它包装在这样的表格中:

<table><tr><td>this is some nasty <b>data</td></tr></table>

一切都好!事实上,FF (FireBug) 和 IE9 的 DOM 检查器都显示了树。在 div-case 中,它显示了 open-b 标记和其中包含的文档的其余部分。但是桌子似乎把它围起来了。

如何在没有表格的情况下“关闭 b”?

【问题讨论】:

  • 假设您通过某种方式确定标记不是恶意的,并且这是多个标签的持续问题,我可能会通过尝试重构标记的解析器运行数据.
  • 您是以文本格式显示标记还是在页面内插入标记?
  • 这是我们数据团队填充目录产品描述的早期阶段。他们在描述本身中使用了 HTML 标记,并且对正确的格式不是很好。他们被允许这样做已经够糟糕的了,但标记是虚假的。不危险,但有时格式不正确。我们正在研究降价和其他方案,以适应他们合法需要做的事情,但触及所有“旧”描述将是一件大事。

标签: html


【解决方案1】:

你正确地使用结束 &lt;/b&gt; 标记,就像任何理智的人一样。

您可以使用DOMDocumenttidy 尝试修复格式错误的标记,以防您无法控制它,但最好在它到达您的数据库之前修复它。

【讨论】:

    【解决方案2】:

    我在某处读到HTML Purifier 应该能够做到这一点。可能值得一试。

    【讨论】:

      【解决方案3】:

      我从 TinyMCE 之类的 HTML 富文本编辑器中得到启发,并构建了一个 IFrame。它似乎更好地包含任意的、可能格式错误的内容。

      【讨论】:

        猜你喜欢
        • 2020-02-07
        • 1970-01-01
        • 2016-01-06
        • 2021-12-07
        • 2022-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-24
        相关资源
        最近更新 更多