我们需要一种方法来在向用户显示时删除HTML注释,但不向开发人员显示。 我想知道最好的办法是什么。
答案 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 */ ?>