有没有办法解析服务器端的HTML注释(PHP或MySQL)

时间:2009-09-30 08:58:27

标签: html parsing comments server-side

我们需要一种方法来在向用户显示时删除HTML注释,但不向开发人员显示。 我想知道最好的办法是什么。

3 个答案:

答案 0 :(得分:1)

尝试:

$html = eregi_replace("<!--[^>]*-->", "", $html);

或使用preg_replace,如下所述:

$html = preg_replace("/<!--(.|\s)*?-->/", "", $html);

而且,是的,无论哪种方式,嵌入字符串的注释分隔符都会导致问题。

答案 1 :(得分:1)

最好的方法是使用像DOMDocument这样的解析器,遍历DOM树并删除所有注释节点。或者你自己构建一个解析器。

答案 2 :(得分:1)

您是从自己的PHP页面中删除注释,还是从字符串中的其他人标记中删除注释?

对于后者,使用Gumbo建议的HTML解析器。不要使用正则表达式来解析HTML,因为它不能。 (我需要将热键绑定到该句子.SO上的每三个问题都试图用正则表达式解析HTML。这不是一个好主意。)

如果您的意思是前者,只需使用PHP注释而不是HTML注释,您就不必进行任何后处理:

<?php /* blah */ ?>