问一个问题 比如一个$str="sdfs<table>dfs</table>df<table>asdasd</table>" 用php如何把两个table(包括table)的值换掉呢
 php有通配符吗?  正则不太熟悉!有正则的话给出代码,谢谢啦啊。

解决方案 »

  1.   

    $str="sdfs<table>dfs</table>df<table>asdasd</table>";
    echo preg_replace("/<table\s*>(.*?)<\s*\/table>/is", "", $str);
      

  2.   

    $str="1111<table border='1' align='conter'>2222</table>3333<table>4444</table>";
    echo preg_replace("/<table\s*>(.*?)<\s*\/table>/is", "", $str);
    这样就不行了 输出的是1111<table border='1' align='conter'>2222</table>3333
      

  3.   

    要百分百的屏蔽表格才行啊 amani11
     
      

  4.   

    你要描述清楚,需要什么你给出的例子,上面的足够可以替换了现在这个可以替换带一些属性的,如果还不够,请给出不能替换的例子出来正则不是万能的,速度也不快,通常针对一些特性定制
    $str="sdfs<table border='0' style=\"display:block;\">dfs</table>df<table>asdasd</table>";
    echo preg_replace("/<table\s*[^>]*>(.*?)<\s*\/table>/is", "", $str);
      

  5.   

    echo preg_replace("/<table[^>]*?>(.*?)<\/table>/is", "", $str);
      

  6.   

    $str = "sdfs<table>dfs</table>df<table>asdasd</table>";
    $str = '@'.$str;
    $s = '';
    $i = $j = 0;while(($i = strpos($str, '<table>')) && ($j = strpos($str, '</table>'))){
    $str = substr($str, 0, $i).substr($str, $j + 8);
    }
    $str = substr($str, 1);
    echo $str;
      

  7.   

    http://cn.php.net/manual/en/refs.basic.text.php,楼主可以到这个网址找找看看