2009-08-22 32 views
2

我正在发布一个带有textarea的表单。HTML DOM Validator - PHP或JavaScript

我允许发布HTML。

现在我想检查用户是否已经关闭了他发布的html中的标签......当我显示该HTML时,像div和table等破坏的标签会损坏整个页面显示...任何方式来检查在PHP或JavaScript中适当的标签useage?

任何指针或帮助,将不胜感激。

谢谢

回答

2

你可能想看看所谓的HTMLPurifier一个PHP的工具 - 有可用的demo page,如果你想快速检查它能做什么。

它需要“排序”HTML作为输入,并提供格式良好的HTML作为输出;这样,您不会强制用户输入格式良好的HTML,但可以“更正”他们输入的内容。

另一件好事是,您可以指定允许哪些标签和属性;这是很好的安全性也:

  • 例如,你可以让<p><strong>标签,但不<script>
  • 你也可以允许<a> + href;但不<a> + 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> 

发生了什么变化?

  • 在第一段的<strong>标签已经自动关闭
  • <script>标签及其内容已被删除
  • 闭合<em><strong>标签在第二段的顺序已被校正。

这只是一个简单的例子,当然 - 我希望它有帮助。

+0

非常感谢... – foxybagga 2009-08-26 11:22:13