Php 使用正则表达式从内容中删除HTML注释
我正在将页面内容放入变量$content 我需要使用正则表达式从$content中剥离HTML注释。我尝试了以下代码,它不能正常工作Php 使用正则表达式从内容中删除HTML注释,php,regex,preg-replace,Php,Regex,Preg Replace,我正在将页面内容放入变量$content 我需要使用正则表达式从$content中剥离HTML注释。我尝试了以下代码,它不能正常工作 $content = preg_replace('/<!--(.|\)*?-->/', '', $content); $content=preg_replace(“//”,“$content”); 您的反斜杠正在逃逸您的)。。。我不确定你认为(.|\)在做什么;为什么不直接使用*?并完全删除捕获组 此外,还需要设置s修饰符,使匹配新行 修订守则 $c
$content = preg_replace('/<!--(.|\)*?-->/', '', $content);
$content=preg_replace(“//”,“$content”);
您的反斜杠正在逃逸您的)
。。。我不确定你认为(.|\)
在做什么;为什么不直接使用*?
并完全删除捕获组
此外,还需要设置s
修饰符,使
匹配新行
修订守则
$content=preg_replace('//s',''$content);
看起来你遗漏了什么
$content = preg_replace( '/<!--(.|\s)*?-->/' , '' , $content );
$content=preg_replace(“//”,“$content”);
您可以在此处测试它使用以下方法:
你必须逃脱代码>因为它是reg exp的一部分,并且还需要包含新行s
修饰符,所以此注释不是一行。和lazy标志U
以尽可能少地匹配,这是在您收到多条注释时使用的
完美
$content = preg_replace('/<\!--.*-->/Us', '', $content);
$content=preg_replace('//Us',''$content);
这个代码>不需要转义。。。虽然U
修饰符是一种替代方法,但OP已经将正则表达式设置为与?
的使用以一种不灵活的方式进行匹配。我说它用于我自己的代码您的解决方案按预期工作。谢谢。你知道这行代码为什么会在我这边导致“500内部服务器错误”吗?这对我来说很有效:$html=preg\u replace(“~~s”,”,$html);这是一种非常糟糕的资源消耗模式。
$content = preg_replace('/<\!--.*-->/Us', '', $content);