文档章节

敏感字过滤

drewin
 drewin
发布于 2013/09/27 16:01
字数 179
阅读 74
收藏 0
function filterWords($content,$file='./Public/swords.txt'){
$len = mb_strlen($content);
if($len==0){
return true;
}
        mb_internal_encoding('utf-8');  //内部编码改为utf8
        $keywords=array_unique(explode(',',file_get_contents($file)));
        //按首字分组
        $dict=array();
        foreach($keywords as $keyword){
            if(empty($keyword)){
                continue;
            }
            $key = mb_substr($keyword,0,1); //啊扁推翻
            $dict[$key]['list'][]=$keyword; //dict['啊']['list'][] = '啊扁推翻'
            //dict['啊']['max'] = 4,dict['啊']['max'] 获取字符串最长的
            $dict[$key]['max']=max(isset($dict[$key]['max']) ? $dict[$key]['max'] : 0,mb_strlen($keyword));
        }
        //开始过滤
        // $result='';
        for($i=0;$i<$len;++$i){ //200个字 陈啊扁推翻中共
            $key=mb_substr($content,$i,1);
            if(array_key_exists($key,$dict)){
                $res=mb_substr($content,$i,$dict[$key]['max']);
                $af=0;
                foreach($dict[$key]['list'] as $k=>$keyword){
                    if(mb_strpos($res,$keyword) !==false){
                        $keywordlen=mb_strlen($keyword);
                        $af=$keywordlen-1;
                        // $result .=str_repeat("*",$keywordlen);
                        // break;
                        return false;
                    }elseif($k==0){
                        // $result .= mb_substr($res,0,1);
                    }
                }
                $i+=$af;
            }
            // else{
                // $result .= mb_substr($content,$i,1);
            // }
        }
        // return $result;
        return true;
    }

© 著作权归作者所有

共有 人打赏支持
drewin
粉丝 28
博文 121
码字总数 43979
作品 0
海淀
程序员
私信 提问
层级hashmap过滤敏感词思路

https://blog.csdn.net/gotohailang/article/details/38257627 敏感词过滤-使用hashmap实现dfa算法 假设敏感词有 中国人 中国男人 法轮 1、构建一个如下的数据结构 2、使用敏感词数据结构过滤...

ka_ko
2018/08/25
0
0
零宽度字符:和谐?屏蔽?不存在的

对零宽度字符完全没有头绪的可以先玩下这个Demo 什么是零宽度字符? 零宽度字符是一些不可见的,不可打印的字符。它们存在于页面中主要用于调整字符的显示格式,下面就是一些常见的零宽度字符...

yuanfux
2018/09/04
0
0
传 Google 中国版搜索会收集用户号码,追踪网上行为

根据 The Intercept 的报道,Google 中国版搜索引擎不仅会过滤敏感字,还会收集整合用户电话号码,用于追踪用户的搜索行为。 8月初,已有消息爆料 Google 为中国打造的 Dragonfly(蜻蜓)搜索...

达尔文
2018/09/19
3.5K
50
miniBB

miniBB是一个袖珍型开源PHP论坛软件。它提供的功能包括论坛样式更换,多界面语言/多时区支持,使用Apache的mod_rewrite URL处理功能来让你的论坛更容易被搜索引擎收录,易于使用和定制的搜索...

匿名
2008/09/06
4.8K
0
放弃了,Google 搜索不再提醒敏感关键字

年前,Google搜索在中国使出了一个“绝招”,对于涉嫌敏感字的直接予以提醒,但这种另类的做法效果并不好,一来完全打乱了用户的正常搜索,二来也暴露了更多敏感信息。现在,Google已经放弃了...

杨坤乾
2013/01/05
10.8K
155

没有更多内容

加载失败,请刷新页面

加载更多

Spring学习记录

Java类定义配置 @Configuration //标记为配置类@ComponentScan //标记为扫描当前包及子包所有标记为@Component的类@ComponentScan(basePackageClasses = {接口.class,...}) //标记为扫描当...

CHONGCHEN
47分钟前
1
0
如何开发一款以太坊(安卓)钱包系列2 - 导入账号及账号管理

这是如何开发一款以太坊(安卓)钱包系列第2篇,如何导入账号。有时用户可能已经有一个账号,这篇文章接来介绍下,如何实现导入用户已经存在的账号。 导入账号预备知识 从用户需求上来讲,导...

Tiny熊
今天
3
0
intellJ IDEA搭建java+selenium自动化环境(maven,selenium,testng)

1.安装jdk1.8; 2.安装intellJ; 3.安装maven; 3.1 如果是单前用户,配置用户环境变量即可,如果是多用户,则需配置系统环境变量,变量名为MAVEN_HOME,赋值D:\Application\maven,往path中...

不最醉不龟归
今天
4
0
聊聊ShenandoahGC的Brooks Pointers

序 本文主要研究一下ShenandoahGC的Brooks Pointers Shenandoah Shenandoah面向low-pause-time的垃圾收集器,它的GC cycle主要有 Snapshot-at-the-beginning concurrent mark包括Init Mark(P......

go4it
昨天
4
0
Makefile通用编写规则

#简单实用的Makefile模板: objs := a.o b.o test:$(objs) gcc -o test $^ # .a.o.d .b.o.d dep_files := $(foreach f,$(objs),.$(f).d) dep_files := $(wildcard $(dep_files)) ifneq ($(d......

shzwork
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部