这个太简单了,因为form不会嵌套
preg_match_all("#<form[^>]*?>.+?</form>#is",$ar)

解决方案 »

  1.   

    简单是简单啊 
    不过 你给的语句是错的
    Warning: preg_match_all() expects at least 3 parameters, 2 given in D:\wwwroot\lan\wd\wd_index.php on line 42
      

  2.   

    <script language="javascript" type="text/javascript">
    function getit()
    {
    var r;
    var data = document.form2.outerHTML;
    data = data.toString();
    var reg = /(<([FORM]+)[^>]*>)(.*)(<\/FORM>)/;
    r = data.match(reg);
    alert(r[3]);
    }
    </script>
    </HEAD><BODY>
    <button onclick="getit();">asdad</button>
    <FORM METHOD=POST ACTION="" name="form2">
    <INPUT TYPE="text" NAME="">
    <SELECT NAME="">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </SELECT>
    <INPUT TYPE="checkbox" NAME="asdf">
    <INPUT TYPE="checkbox" NAME="asd">
    <INPUT TYPE="checkbox" NAME="asd">
    <TEXTAREA NAME="" ROWS="" COLS=""></TEXTAREA>
    </FORM>
    </BODY>
    </HTML>
      

  3.   

    不好意思,上面发的是javascript,我想PHP当是是类似,楼主自行调试下
      

  4.   

    你要的是正则啊。你管这函数报错做啥$str="你的数据";
    preg_match_all("#<form[^>]*?>.+?</form>#is",$str,$ar)
      

  5.   

    Gdj(陈水.智商只有129.非卖品)   出来的全是空 数组啊
      

  6.   

    如果你真的就$str="你的数据";
    preg_match_all("#<form[^>]*?>.+?</form>#is",$str,$ar);这么运行的话当然是空的了。$str="你的数据"; <---------------你的页面替换掉
    preg_match_all("#<form[^>]*?>.+?</form>#is",$str,$ar)
      

  7.   

    我当然是把   $str="你的数据"; <---------------页面替换掉
      

  8.   

    我是做个socket  的出数据现在要排除
      

  9.   

    ("#<form[^>]*?>.+?</form>#is
    --------------------
    怎么这么复杂呢?
    "/<form[.+]>.+<\/form>/u"不就行了吗?
    顺便问下后面的IS是什么意思?