哪位强人,就些个连接过滤的吧!
<a href="http://baidu.com/">baidu</a>
如何过滤能够不留下任何字符,而且不影响到其他代码!
strip_tags可以实现html过滤,不过过滤的太干净了,全都都没了!不能够选择性的过滤一些!str.replace(/<a[^>]+href=[" ]?([^"]+)[" ]?[^>]*>(.*?)<\/a>/ig,"$2");
这句把连接转换成ubb
php如何写!放到<?php ?>之间就出现错误

解决方案 »

  1.   

    =============================================
    str.replace(/<a[^>]+href=[" ]?([^"]+)[" ]?[^>]*>(.*?)<\/a>/ig,"$2");
    =============================================
    大哥,这个不是php中的什么东西,当然出错了.改成
    str_replace(/<a[^>]+href=[" ]?([^"]+)[" ]?[^>]*>(.*?)<\/a>/ig,"$2");另个,报什么错,怎么不贴出来啊!大家好分析啊!
      

  2.   

    str.replace 是JS里头的我想要php里头的写法!
    不过已经从DZ里头找到了两句清除连接和图片连接
    $btdata=preg_replace("/(http:\/\/[a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+\.(jpg|gif|png|bmp))/is","",$btdata);
    $btdata=preg_replace("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto):\/\/|www\.)([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+)/is","",$btdata);
    但是还是没有过滤掉<img src="" width="128" height="96" border="0"
    <a href=""
      

  3.   

    $btdata=preg_replace("/(<a[^>]+href=\"([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+))[^>]*>/is","",$btdata);
    $btdata=preg_replace("/(<div[^>]+[a-z0-9]=\"([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+))[^>]*>/is","",$btdata);
    $btdata=preg_replace("/(<font[^>]+[a-z0-9]=\"([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+))[^>]*>/is","",$btdata);
    $btdata=preg_replace("/(<dd[^>]+[a-z0-9]=\"([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+))[^>]*>/is","",$btdata);
    $btdata=preg_replace("/(<img[^>]id=\"([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+))[^>]*>/is","",$btdata);
    $btdata=preg_replace("/(<dl[^>]+[a-z0-9]=\"([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+))[^>]*>/is","",$btdata);
    基本已经解决,需要的就看这些吧!别我的老路了!还多看开源系统比较实在!不过中文还无法过滤,字符这么多过滤起来非常难!
      

  4.   

    楼主去手册查一下这个函数,或许能满足你的需要。
    string strip_tags ( string str [, string allowable_tags] )相关地址:
    http://cn2.php.net/manual/zh/function.strip-tags.php用正则的话,效率会低很多,php自带的函数都是c写的,效率很高。而且你的那些正则似乎匹配的东西太多了,完全没有必要。$search = array ("'<script[^>]*?>.*?</script>'si",  // 去掉 javascript
                     "'<[\/\!]*?[^<>]*?>'si",          // 去掉 HTML 标记
                     "'([\r\n])[\s]+'",                // 去掉空白字符
                     "'&(quot|#34);'i",                // 替换 HTML 实体
                     "'&(amp|#38);'i",
                     "'&(lt|#60);'i",
                     "'&(gt|#62);'i",
                     "'&(nbsp|#160);'i",
                     "'&(iexcl|#161);'i",
                     "'&(cent|#162);'i",
                     "'&(pound|#163);'i",
                     "'&(copy|#169);'i",
                     "'&#(\d+);'e");                    // 作为 PHP 代码运行$replace = array ("",
                     "",
                     "\\1",
                     "\"",
                     "&",
                     "<",
                     ">",
                     " ",
                     chr(161),
                     chr(162),
                     chr(163),
                     chr(169),
                     "chr(\\1)");$text = preg_replace ($search, $replace, $document);这是一个正则的例子。$search是你要匹配的内容,$replace是你要替换的内容,如果不想要的话就替换为""空,$document就是你要替换的源字符串。注意,$search,$replace两个数组的元素是一一对应的,顺序别弄错了。
      

  5.   

    楼上的也不错,多个方法总比一个要好!
    关于中文字符,我想把他们先转成UNICODE
    然后在过滤
    不过效率上一定会非常差,不知道有其他更好的方法吗