$str='11111<input type="text" value="aaa" name="ccc">22222<input type="text" VALUE="2009-12-11 15:15:15"><SELECT NAME="SELECT1"><OPTION VALUE="男">男</OPTION><OPTION VALUE="女" selected>女</OPTION></SELECT>DDD";
这个字符串$str中只有文本框和下拉框两种表单,但数量不确定,我想要的结果是:
$str='11111aaa222222009-12-11 15:15:15女DDD";
大家帮我看看能不能实现。

解决方案 »

  1.   

    能,用正刚把html去掉, 并提取html里的value的值 可以用preg_replace() ,str_replace, 或preg_match()搞定
      

  2.   

    $str = <<<TEST
    11111 <input type="text" value="aaa" name="ccc">22222 <input type="text" VALUE="2009-12-11 15:15:15"> <SELECT NAME="SELECT1"> <OPTION VALUE="男">男 </OPTION> <OPTION VALUE="女" selected>女 </OPTION> </SELECT>DDD
    TEST;
    $search=array(
    "/<input[^<>]*value=\"([^\"]+)\"[^<>]*>/i",
    "/<select[^>]+>\s*+(?:<OPTION[^>]+>[^>]+<\/OPTION>)*\s*+<OPTION VALUE=\"([^\"]+)\"\s*+selected\s*>[^>]+<\/OPTION>(?:\s*+<OPTION[^>]+>[^>]+<\/OPTION>)*\s*+<\/select>/i",
    );
    $replace = array(
    "\\1",
    "\\1"
    );
    echo preg_replace($search, $replace, $str);