代码之家  ›  专栏  ›  技术社区  ›  foxybagga

HTML DOM验证器-PHP或javascript

  •  2
  • foxybagga  · 技术社区  · 16 年前

    我正在张贴一个包含文本区域的表单。

    我允许发布HTML。

    现在我想检查一下用户是否已经关闭了他在他发布的HTML中放置的标签…当我显示HTML时,诸如div和tables等损坏的标签破坏了整个页面的显示…有没有办法在PHP或JavaScript中检查标签的正确使用?

    任何指点或帮助都将不胜感激。

    谢谢

    2 回复  |  直到 16 年前
        1
  •  2
  •   Pascal MARTIN    16 年前

    您可能想看看一个名为 HTMLPurifier ——有一个 demo page 如果您想快速检查它的功能,可以使用。

    它将“排序”HTML作为输入,并将格式良好的HTML作为输出;这样,您就不会强迫用户输入格式良好的HTML,而是可以“更正”他们键入的内容。

    另一个好处是,您可以指定允许哪些标记和属性;这对安全性也有好处:

    • 例如,您可以允许 <p> <strong> 标签,但不是 <script> .
    • 你也可以允许 <a> + href ;但不是 <A & GT; + onclick


    例如,这里有一些格式不正确的HTML,您可以提供给它:

    <p>this is a <strong>test</p>
    <script type="text/javascript">alert('glop');</script>
    <p>And this is another <em>te<strong>st</em></strong></p>
    

    下面是格式良好/安全的HTML,作为输出:

    <p>this is a <strong>test</strong></p>
    <p>And this is another <em>te<strong>st</strong></em></p>
    

    发生了什么变化?

    • 这个 <强健; 第一段中的标记已自动关闭
    • 这个 <脚本& GT; 标签及其内容已被删除
    • 结案顺序 <em> <强健; 第二段中的标签已更正。

    当然,这只是一个很快的例子——我希望能有所帮助。

        2
  •  0
  •   HyderA    16 年前

    我不确定你到底想做什么。如果您正在寻找一个富文本编辑器,请尝试一个更成熟的解决方案,而不是尝试重新设计轮子。/

    http://www.queness.com/post/212/10-jquery-and-non-jquery-javascript-rich-text-editors

    您将需要正则表达式来检查关闭的标记。对于不熟悉regex的人来说,这有点复杂。

    使用此搜索作为起点: http://www.google.com.kw/search?q=regex+html+tags