敏感词检测,从v2.5.12
版本起支持,依赖\x\SensitiveWord
组件。
该组件使用DFA算法实现,经调试 5W敏感词,检测完成只需要0.0005s
耗时。
可以在/config/words.php
配置文件中设置词库列表,框架会在启动前自动载入相应的词库。
例如:
return [
// +----------------------------------------------------------------------
// | 敏感词配置
// +----------------------------------------------------------------------
// 敏感词文件列表,需要使用ROOT_APTH常量
'sensitive_file_list' => [
[
'path' => ROOT_PATH.'public/word/1.txt', // 词库文件
'char' => false, // 敏感词分隔符,false表示换行分隔
],
[
'path' => ROOT_PATH.'public/word/2.txt',
'char' => '|',
],
],
];
依赖类:\x\SensitiveWord
方法名:set_tree_array()
返回值:this
参数:
array $list
string $field
false
使用示例:
// 导入一维数组
\x\SensitiveWord::set_tree_array([
'大大1',
'大大2',
'大大3',
]);
// 导入二维数组,一般用于数据库读取载入
\x\SensitiveWord::set_tree_array([
['word' => '牛牛1'],
['word' => '牛牛2'],
['word' => '牛牛3'],
], 'word');
依赖类:\x\SensitiveWord
方法名:set_tree_string()
返回值:this
参数:
string $word
使用示例:
\x\SensitiveWord::set_tree_array('小黄牛');
依赖类:\x\SensitiveWord
方法名:exec()
返回值:array
参数:
string $content
int $wordNum
0
表示获取全部0
使用示例:
$cotent = '小黄牛 今天上了澳门赌网!';
// 获取包含的敏感词
var_dump(\x\SensitiveWord::exec($content));
var_dump(\x\SensitiveWord::exec($content, 1));
// 输出
[
"小黄牛",
"赌网"
]
[
"小黄牛"
]
依赖类:\x\SensitiveWord
方法名:replace()
返回值:string
参数:
string $content
string $char
bool $repeat
false
表示只替换一个字符false
使用示例:
$cotent = '小黄牛 今天上了澳门赌网!';
// 替换敏感词
var_dump(\x\SensitiveWord::replace($content, '*'));
var_dump(\x\SensitiveWord::replace($content, '*', true));
// 输出
* 今天上了澳门*!
*** 今天上了澳门**!
依赖类:\x\SensitiveWord
方法名:mark()
返回值:string
参数:
string $content
string $leftTag
string $rightTag
使用示例:
$cotent = '小黄牛 今天上了澳门赌网!';
// 标记敏感词
var_dump(\x\SensitiveWord::mark($content, '“', '”'));
// 输出
“小黄牛” 今天上了澳门“赌网”!
依赖类:\x\SensitiveWord
方法名:is_legal()
返回值:bool
参数:
string $content
使用示例:
$cotent = '小黄牛 今天上了澳门赌网!';
// 是否合法
var_dump(\x\SensitiveWord::is_legal($content));
// 输出
false
依赖类:\x\SensitiveWord
方法名:count()
返回值:int
参数:无
使用示例:
\x\SensitiveWord::count();
依赖类:\x\SensitiveWord
方法名:reset()
返回值:无
参数:无
使用示例:
\x\SensitiveWord::reset();
SW-X提供了一个较全的敏感词测试词库,可点击按钮进行下载:敏感词.zip