成对标签多行匹配,大家正则一般应该怎么写?
#<script[^>]*>.*</script>#isU这样吗?
U模式和.*搞得我一个头两个大
<script type="text/javascript">
............
</script>
<div class="test">
<!-- 内部无div -->
..........
</div>
<script type="text/javascript">
............
</script>
<div class="test">
<!-- 内部无div -->
..........
</div>

解决方案 »

  1.   

    <?php
    $string = <<<CONT
    <script type="text/javascript">
        ............
    </script>
    <div class="test">
        <!-- 内部无div -->
        ..........
    </div>
    <script type="text/javascript">
        ............
    </script>
    <div class="test">
        <!-- 内部无div -->
        ..........
    </div>
    CONT;preg_match_all('#<script[^>]*>.*</script>#isU', $string, $match);
    print_r($match);
    ?>
    没有问题啊
      

  2.   


    <script type="text/javascript">
    document.write("<div>这里是广告区域</div>");
    </script>
    <script type="text/javascript">
    function hello(){
    var a=1;
    }
    </script>
    <script src='http://dcdv1.it.com.cn/adsunion/get/;pl=pl-9-homepage_bp;tp=js;sk=0;ck=0;/?'></script>
    <SCRIPT src='http://dcdv1.it.com.cn/adsunion/get/;pl=pl-9-homepage_qp;tp=js;sk=0;ck=0;/?'></SCRIPT>
    <script src='http://dcdv1.it.com.cn/adsunion/get/;pl=pl-9-homepage_top;tp=js;sk=0;ck=0;/?'></script>
    <div class="test">
    "hello";
    </div>
    <script type="text/javascript" src="good.js"></script>
    <!-- 
    怎样匹配出所有js代码?
    1.含有src="*.js";(没有.js的多是广告js)
    2.内部第一行是document.write的不要 (这类多是广告js)
     -->
      

  3.   

    比如我匹配到src里的js
    这个没有办法匹配里面的内容呀,这个只能匹配页面上已经有的东西
      

  4.   

    先把src="#####",的#####匹配出来根据本页面的相对目录,或者是绝对网址,file_get_contents,将内容读取了,再分析
      

  5.   

    只是匹配 <script 而己preg_match_all('/<script.*>([\d\D]*)<\/script>/i',$string,$matches);
    var_dump($matches);