Skip to content
This repository was archived by the owner on May 7, 2020. It is now read-only.

Commit f1eb1bf

Browse files
author
unknown
committed
更改添加敏感词的方式
1 parent 06da44d commit f1eb1bf

File tree

5 files changed

+38
-6
lines changed

5 files changed

+38
-6
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/.idea

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Sensitive Fliter for Laravel5 / Lumen based on [tuyuwei/SensitiveWord](https://g
66
## Install
77

88
```shell
9-
composer require "yankewei/laravel-sensitive:~1.0"
9+
composer require yankewei/laravel-sensitive
1010
```
1111

1212
## For Laravel
@@ -47,9 +47,9 @@ Using facade:
4747

4848
```php
4949
$interference = ['&', '*'];
50-
$data = ['日本', '滚蛋'];
51-
Sensitive::interference($interference);//添加干扰因子
52-
Sensitive::addwords($data);//需要过滤的敏感词
50+
$filename = './words.txt'; //每个敏感词独占一行
51+
Sensitive::interference($interference); //添加干扰因子
52+
Sensitive::addwords($filename); //需要过滤的敏感词
5353
$txt = "我说的日本册,滚&蛋不是。。。";
5454
$words = Sensitive::filter($txt);
5555
dd($words);

demo/index.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
//this demo only take test. suggest you use composer
3+
require_once "../src/Sensitive.php";
4+
$interference = ['&', '*'];
5+
$filename = './words.txt';
6+
$sensitive = new \Yankewei\LaravelSensitive\Sensitive();
7+
$sensitive->interference($interference); //添加干扰因子
8+
$sensitive->addWords($filename);
9+
$txt = "我说的日本册,滚&蛋不是。。。";
10+
$words = $sensitive->filter($txt);
11+
var_dump($words);//string(37) "我说的日本册,***不是。。。"

demo/words.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
日本
2+
滚蛋

src/Sensitive.php

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ public function interference($disturbList = array())
3232
* 添加敏感词
3333
* @param array $txtWords
3434
*/
35-
public function addWords(array $wordsList)
35+
public function addWords($filename)
3636
{
37-
foreach ($wordsList as $words) {
37+
foreach ($this->getGeneretor($filename) as $words) {
3838
$nowWords = &$this->trieTreeMap;
3939
$len = mb_strlen($words);
4040
for ($i = 0; $i < $len; $i++) {
@@ -47,6 +47,24 @@ public function addWords(array $wordsList)
4747
}
4848
}
4949

50+
/**
51+
* 使用yield生成器
52+
* @param $filename
53+
* @return \Generator
54+
* @throws \Exception
55+
*/
56+
protected function getGeneretor($filename)
57+
{
58+
$handle = fopen($filename, 'r');
59+
if (!$handle) {
60+
throw new \Exception('read file failed');
61+
}
62+
while (!feof($handle)) {
63+
yield str_replace(['\'', ' ', PHP_EOL, ','], '', fgets($handle));
64+
}
65+
fclose($handle);
66+
}
67+
5068
/**
5169
* 查找对应敏感词
5270
* @param $txt

0 commit comments

Comments
 (0)