Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在服务器端(PHP或MySQL)解析出HTML注释_Html_Parsing_Comments_Server Side - Fatal编程技术网

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

有没有办法在服务器端(PHP或MySQL)解析出HTML注释,html,parsing,comments,server-side,Html,Parsing,Comments,Server Side,我们需要一种在向用户而不是向开发人员显示时删除HTML注释的方法。 我想知道最好的方法是什么 试试看: $html = eregi_replace("<!--[^>]*-->", "", $html); $html=eregi_replace(“,”,$html); 或使用preg_替换,如下所述: $html = preg_replace("/<!--(.|\s)*?-->/", "", $html); $html=preg\u replace(“//”,“

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

试试看:

$html = eregi_replace("<!--[^>]*-->", "", $html);
$html=eregi_replace(“,”,$html);
或使用preg_替换,如下所述:

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

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

最好使用类似解析器的方法,遍历DOM树并删除所有注释节点。或者您自己构建一个解析器。

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

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

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

<?php /* blah */ ?>

关于
ereg是不推荐的PHP正则表达式功能,将在PHP6中删除。使用preg_替换,无论如何速度更快。