比如像“好好好”,被过滤成“好好”,像“非常好非常好非常好”,被过滤成“非常好非常好”,像“,,,”被过滤成“,,”,像“~~~~~~~~~”被过滤成“~~”,尽可能多把所有可能性包含进去!最近在玩wordpress,想避免尽可能多的垃圾无意义评论~

解决方案 »

  1.   

    echo preg_replace("/(.+)\\1+/is", '$1$1', $s);但不知 ~~~~~~~~~ 为何不能被处理
      

  2.   

    你搜下 php 特殊字符过滤
      

  3.   

    开玩笑吧?
    $s =<<< TXT
    比如像“好好好”,被过滤成“好好”,像“非常好非常好非常好”,被过滤成“非常好非常好”,像“,,,”被过滤成“,,”,像“~~~~~~~~~”被过滤成“~~”,尽可能多把所有可能性包含进去!最近在玩wordpress,想避免尽可能多的垃圾无意义评论~
    TXT;
    echo preg_replace("/(.+)\\1+/is", '$1$1', $s);比如像“好好”,被过滤成“好好”,像“非常好非常好”,被过滤成“非常好非常好”,像“,,”被过滤成“,,”,像“~~~~~~~~~”被过滤成“~~”,尽可能多把所有可能性包含进去!最近在玩wordpress,想避免尽可能多的垃圾无意义评论~
      

  4.   

    echo preg_replace("/(.+?)\\1+/is", '$1$1', $s);
      

  5.   

    哈哈,我记性还行....http://topic.csdn.net/u/20100302/22/A86F914D-AC19-4955-BC98-768C584EA800.html#r_63678078
      

  6.   

    貌似楼主的需求自己都没弄清楚啊。标题说的是“超过3个连续相同的字符”,可是首帖给出的例子“非常好非常好非常好”显然是指词组了。到了 #9 楼,说要改成字符出现的次数,不要求连续了,可是那样的话,很多逗号都要被无辜抹杀了。且不管需求是否合理,要实现的话,倒是有笨办法可以做到,就是对整个字符串进行逐个字符的扫描,出现过就计数,符合要求的字符就输出,不符合要求的就跳过。
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)