我们需要一种在向用户显示而不是向开发人员显示时删除 HTML 注释的方法。我想知道最好的方法是什么。
问问题
1076 次
3 回答
1
尝试:
$html = eregi_replace("<!--[^>]*-->", "", $html);
或者使用 preg_replace,如下所述:
$html = preg_replace("/<!--(.|\s)*?-->/", "", $html);
而且,是的,无论哪种方式,嵌入在字符串中的注释分隔符都会导致问题。
于 2009-09-30T09:05:03.333 回答
1
最好的办法是使用DOMDocument之类的解析器,遍历 DOM 树并删除所有注释节点。或者你自己构建一个解析器。
于 2009-09-30T09:09:06.040 回答
1
您是从自己的 PHP 页面中删除评论,还是从字符串中的其他人的标记中删除评论?
对于后者,使用 Gumbo 建议的 HTML 解析器。不要使用正则表达式来解析 HTML,因为它不能。(我需要为那个句子绑定一个热键。关于 SO 的每三个问题都试图用正则表达式解析 HTML。这不是一个好主意。)
如果您指的是前者,只需使用 PHP 注释而不是 HTML 注释,您就不必进行任何后期处理:
<?php /* blah */ ?>
于 2009-09-30T09:54:41.797 回答