敏感词体系

 

<?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);