如题,正则也不是怎么会用,后来搜索了下相关的问题,得到的结果多是这样的正则去除
$tagname 是指定要去除的html标签
$sc = '/<' . $tagname . '(?:\s[^>]*)\?\>([\s\S]*?)?<\/' . $tagname . '>/is';拿a标签举例:
如果没理解错误的话是 上面是取得<a 任何内容1>任何内容2</a>这样的结果 
如果我要是替换的掉所取得的内容的话 里面的任何内容2 应该也就被替换掉了,我要保留这部分
所以改成了 $tagname 是指定要去除的html标签
$sc="/<*?".$tagname."[^>]*?>/is";但是这样能把前面的东西去掉,后面的</a></div> 等等 却不能去掉了之前看到过有人用| 或的方式 "(<" + tag[i] + @"[\s\S]*?>)|(</" + tag[i] + @"[\s\S]*?>)";
但是 似乎依旧不起作用,报错。请问下我该如何更改这例正则呢?可以完全去除  指定的html标签的

解决方案 »

  1.   

    对,strip_tags 这个函数就能去除了。
      

  2.   

    $s = 'sa;d<b>f</b>js<a href="http://www.baidu.com">百度</a>aldjflksjadlf';
    $allow_tags = '<b>';
    $s = strip_tags($s, $$allow_tags);//$s是字符串,$allow_tags是不过滤掉的标签
      

  3.   

    恩 知道 自带的有这个 strip_tags
    但是 我要去除的是用户指定的 某个或多个标签
    如果在用户指定的 一次循环中 我调用strip_tags允许<b>那么其他的也就完全给替换掉了
    有些是要保留的   指定的标签 不是 一次全去完
      

  4.   

    $sc="/<(\/)?[^>]*?".$tagname."[^>]*?>/is";