我想要一个正则表达式,它可以使用PHP从HTML中删除所有注释。
我在stackoverflow上看到了Regexp match strickly html comment string之类的一些线程,但是那里提供的正则表达式不起作用。我应用提供的代码后,我的PHP代码没有输出任何内容。
我写道:
$regex = array('/<!--((.*)!(\[if))-->/Uis', "/[[:blank:]]+/");
$replaced_comment_in_html = preg_replace($regex, '', $html);
但它显示HTML的评论:
<!-- This is my test comment, which I want to be removed in HTML -->
<!--[if lt IE 9]>
<script src="something.js"></script>
<![endif]-->
它不删除我想要删除的注释,如果我写下面的正则表达式,那么它会删除所有注释(也是页面上所需的IE样式和脚本)
$regex = array('/<!--(.*)-->/Uis', "/[[:blank:]]+/");
有人可以帮忙吗?
答案 0 :(得分:1)
使用此正则表达式:
<!--[^\[].*-->
这不会删除IE评论,但会删除其他评论。
像这样使用:
$regex = array('/<!--[^\[].*-->/Uis', "/[[:blank:]]+/");
$replaced_comment_in_html = preg_replace($regex, '', $html);