<?php
require_once 'global.php';
/**
* 敏感词体系
* 文件所在位置
* lib/filter/filterutil.class.php
*/
/**
* 敏感词监测
*
* @param
string $dictName 敏感字典文件名
* @param
unknown_type $content 要过滤的内容
*
* 返回结果 整体评分 各个敏感词所处位置 和权重
* Array
(
[0] => 1 整体敏感词权重 一般为0.5 以上为违规比较严重的内容
[1] => Array
(
[10] => Array key 为敏感词位置
(
[0] => a片
为敏感词
[1] => 1 为敏感词权重
)
)
)
*/
function filter($dictName,$content) {
$files = array('dir' => D_P . 'data/bbscache/', 'bin' => D_P . 'data/bbscache/' . $dictName . '.php', 'source' => D_P . 'data/bbscache/' . $dictName . '.txt');
$filter = L::loadClass('FilterUtil', 'filter'); //
$filter->setFiles($files);
$filter_data = $content;
$result = $filter->paraseContent($filter_data);
print_r($result);
}
/**
* 敏感词设置
*
* @param
unknown_type $dictName 字典
* @param
unknown_type $word 敏感词
* @param
unknown_type $weight 权重 一般设置小于1
*/
function filterSet($dictName,$word,$weight) {
L::loadClass('filterutil', 'filter', false);
$bin_file = D_P . 'data/bbscache/' . $dictName . '.php';
$source_file = D_P . 'data/bbscache/' . $dictName . '.txt';
if (!file_exists($bin_file) && !file_exists($source_file)) {
pwCache::setData($source_file, ''); //文本形式字典
pwCache::setData($bin_file, ''); //二进制字典
}
$content = "" . $word . "|".$weight."\r\n";
pwCache::setData($source_file, $content); //文本形式字典
pwCache::setData($bin_file, ''); //二进制字典
//更新二进制字典
$trie = new Trie();
$trie->build($source_file, $bin_file);
}
/**
* 敏感词查看
* 你可以把敏感词保存在数据库里面,也可以分析文本形式字典
*/
function filterView($dictName) {
}
$dictName
= 'demo';
$words = 'a片';
filterSet($dictName,$words,1);
$content = 'demo hhhh a片';
filter($dictName,$content);