【发布时间】:2014-10-27 23:55:46
【问题描述】:
我对 HTML 中的 IE cmets 有点问题。 我正在尝试从 html 字符串中解析脚本,这并不难。 但是,在我的正则表达式中,我捕捉到了 IE 注释脚本,我真的不想要那个。
目前我的脚本是:
function get_scripts($html){
preg_match_all('#<script(.*?)</script>#is', $html, $matches);
$scripts = "";
if(isset($matches[0]) && is_array($matches[0])){
foreach ($matches[0] as $key => $value) {
$scripts .= $value;
}
}
return $scripts;
}
$html = '
<!--[if lt IE 9]>
<script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script type="text/javascript">
var domain_blog_json="";
</script>
';
echo get_scripts($html);
有谁知道如何做到这一点? 我尝试过消极的向后看,但它不起作用,或者我(当然)是 Reg Exp 的菜鸟。
谢谢!
【问题讨论】:
-
不要使用正则表达式进行 html 解析。使用适当的 html 解析器,如 DomDocument。这将默认忽略条件 cmets
-
是的,我知道,但我喜欢硬着头皮去做。 :)
标签: php html regex internet-explorer