【问题标题】:html ignore extra end tags if existinghtml 如果存在则忽略额外的结束标签
【发布时间】:2021-10-22 19:58:38
【问题描述】:

我们的代码看起来像这样

<table>
<tr>
<td>
<div>
 ....  function that get some text including html from database.
</div>
</td>
</tr>
<div> ... div that should be in table..</div>
</table>

现在我的问题是,如果我们输入的文本是例如“test ” 这当然会提前结束表格,最后一个 div 将在表格之外结束。 这里是否有一些技巧,而不必计算文本中的表格标签来防止这种情况发生? 就像 div 周围的强制容器一样,您可以在其中输入文本以防止其结束外部标签? 还是其他方式?

然后尝试清除。 我们从数据库中获得的第一个 div 中的文本。 如果我们输入的这个文本是不正确的 html,比如“/table>” 然后我希望该 html 标记被忽略而不是结束周围的表格。 但如果是,我确实想将文本显示为 html。 所以基本上我只是希望该 div 内的文本不能在 div 之外结束标签。

哦,我现在明白了,我的 html 标记已被删除。

【问题讨论】:

  • 不清楚你想要什么
  • 我认为你应该以不同的方式处理这个问题并解析与数据库相关的数据(例如自动关闭和验证 HTML 标签)
  • 如果这是您在页面上显示的用户提供的 HTML,请将其放入具有 sandbox 属性的 iframe 中,您应该进行设置。
  • 您可能应该使用 HTMLPurifier 之类的东西,然后在必要时将数据库中的内容制作为正确的“完成”HTML。

标签: html


【解决方案1】:

您可以使用可以检查从 db 获取的 html 是否有效的工具,例如 DomParser。如果有效,您可以显示 html,否则仅返回函数中的文本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    相关资源
    最近更新 更多