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

Commit

Permalink
更改添加敏感词的方式
Browse files Browse the repository at this point in the history
  • Loading branch information
unknown committed Jul 29, 2017
1 parent 06da44d commit f1eb1bf
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 6 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/.idea
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Sensitive Fliter for Laravel5 / Lumen based on [tuyuwei/SensitiveWord](https://g
## Install

```shell
composer require "yankewei/laravel-sensitive:~1.0"
composer require yankewei/laravel-sensitive
```

## For Laravel
Expand Down Expand Up @@ -47,9 +47,9 @@ Using facade:

```php
$interference = ['&', '*'];
$data = ['日本', '滚蛋'];
Sensitive::interference($interference);//添加干扰因子
Sensitive::addwords($data);//需要过滤的敏感词
$filename = './words.txt'; //每个敏感词独占一行
Sensitive::interference($interference); //添加干扰因子
Sensitive::addwords($filename); //需要过滤的敏感词
$txt = "我说的日本册,滚&蛋不是。。。";
$words = Sensitive::filter($txt);
dd($words);
Expand Down
11 changes: 11 additions & 0 deletions demo/index.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
//this demo only take test. suggest you use composer
require_once "../src/Sensitive.php";
$interference = ['&', '*'];
$filename = './words.txt';
$sensitive = new \Yankewei\LaravelSensitive\Sensitive();
$sensitive->interference($interference); //添加干扰因子
$sensitive->addWords($filename);
$txt = "我说的日本册,滚&蛋不是。。。";
$words = $sensitive->filter($txt);
var_dump($words);//string(37) "我说的日本册,***不是。。。"
2 changes: 2 additions & 0 deletions demo/words.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
日本
滚蛋
22 changes: 20 additions & 2 deletions src/Sensitive.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ public function interference($disturbList = array())
* 添加敏感词
* @param array $txtWords
*/
public function addWords(array $wordsList)
public function addWords($filename)
{
foreach ($wordsList as $words) {
foreach ($this->getGeneretor($filename) as $words) {
$nowWords = &$this->trieTreeMap;
$len = mb_strlen($words);
for ($i = 0; $i < $len; $i++) {
Expand All @@ -47,6 +47,24 @@ public function addWords(array $wordsList)
}
}

/**
* 使用yield生成器
* @param $filename
* @return \Generator
* @throws \Exception
*/
protected function getGeneretor($filename)
{
$handle = fopen($filename, 'r');
if (!$handle) {
throw new \Exception('read file failed');
}
while (!feof($handle)) {
yield str_replace(['\'', ' ', PHP_EOL, ','], '', fgets($handle));
}
fclose($handle);
}

/**
* 查找对应敏感词
* @param $txt
Expand Down

0 comments on commit f1eb1bf

Please sign in to comment.