$str='<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td>姓名</td><td><input name="textfield" type="text" id="textfield" value="username"></td></tr><tr><td>年龄</td><td><input name="textfield" type="text" id="textfield" value="20"></td></tr></table>';
我想得到的结果是:
$str='<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td>姓名</td><td>username</td></tr><tr><td>年龄</td><td>20</td></tr></table>';
应该如何写正则实现?

解决方案 »

  1.   

    去掉input输入框?而用来替代的是input中的值?
      

  2.   

    是的,我要去掉input中的html代码,用value值来替代
      

  3.   

    $str=' <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>姓名 </td> <td> <input name="textfield" type="text" id="textfield" value="username"> </td> </tr> <tr> <td>年龄 </td> <td> <input name="textfield" type="text" id="textfield" value="20"> </td> </tr> </table>';echo preg_replace('/<input[^>]*value=("|\')([^>]*?)\\1[^>]*>/i','\\2',$str);
      

  4.   

    哪肯定的条件吧,如果符合某咱条件才会显示的,使用IF语句做判断.是最简单的,
    if($terms == 1){
    $str=' <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>姓名 </td> <td> <input name="textfield" type="text" id="textfield" value="username"> </td> </tr> <tr> <td>年龄 </td> <td> <input name="textfield" type="text" id="textfield" value="20"> </td> </tr> </table>'; 
    }else{
    $str=' <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>姓名 </td> <td>username </td> </tr> <tr> <td>年龄 </td> <td>20 </td> </tr> </table>'; }
    如果非得没有条件的替换的话,哪正则还是请教高手吧,我正则是三把手。
      

  5.   

    谢谢foolbirdflyfirst
    最近在搞一个产品添加,不同的产品根据不同的分类,它的参数不一样,并且参数的数量也不一样,所以想到将这些参数放到分类中,让用户去填写,在显示的时候,为了好看就需要将input去掉。所以要这个功能
      

  6.   

    //上面写得有点问题,加上value后面的=号前后有空格的匹配。
    echo preg_replace('/<input[^>]*value\s*=\s*("|\')([^>]*?)\\1[^>]*>/i','\\2',$str);
      

  7.   

    正则真的那么有用吗?哎……用近一年的,PHP了,从来没用过正则呀!汗…………
      

  8.   

    一定要用正则嘛?
    我的处理方法是<input readonly name="pass_check" id="pass_check" size="70" style="border:none;color:#FF0000;">,这样实现隐藏,只要通过JS进行赋值就行了,希望有帮助啊