网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 php实现过滤敏感词
内容
    php实现过滤敏感词,具体代码如下:
    <?php
    /**
    * Created by JetBrains PhpStorm.
    * User: lsl
    * Date: 13-8-28
    * Time: 下午2:58
    * 敏感词过滤工具类
    * 使用方法
    * echo FilterTools::filterContent("你妈的我操一色狼杂种二山食物","*",DIR."config/word.txt",$GLOBALS["p_memcache"]["bad_words"]);
    */
    class FilterTools {
    public static $keyword = array();
    /**
    * 从文件中加载敏感词
    * @param $filename
    * @return array
    */
    static function getBadWords($filename){
    $file_handle = fopen($filename, "r");
    while (!feof($file_handle)) {
    $line = trim(fgets($file_handle));
    array_push(self::$keyword,$line);
    }
    fclose($file_handle);
    return self::$keyword;
    }
    /**
    * @param $content 待处理字符串
    * @param $target 替换后的字符
    * @param $filename 敏感词配置文件
    * @param $memconfig 缓存配置文件
    * @return 处理后的字符串
    */
    static function filterContent($content,$target,$filename,$memconfig){
    $mem = new BadWordsMemcache($filename,$memconfig);
    $keyword = $mem->getList();
    if(count($keyword) == 0){
    $keyword = self::getBadWords($filename);
    }
    return strtr($content, array_combine( $keyword, array_fill(0,count($keyword), $target)));
    }
    }
    /**
    * 敏感词缓存处理类
    * Class BadWordsMemcache
    * User: lsl
    */
    class BadWordsMemcache{
    var $memcache;
    var $key;
    var $list;
    var $filename;
    function __construct($filename,$memconfig) {
    $this->filename = $filename;
    if(!class_exists("P_Memcache")){
    require_once DIR."lib/memcache.class.php";
    }
    $this->key = "bad_words";
    $this->memcache = new P_Memcache();
    $this->memcache->config = $memconfig;
    $this->memcache->connect();
    print_r($this->memcache);
    $this->init();
    }
    function __destruct() {
    $this->memcache->close();
    }
    /**
    * 初始化
    * @param bool $isReset
    */
    function init($isReset = false){
    $this->list = $this->memcache->get($this->key)?$this->memcache->get($this->key):array();
    if(count($this->list)==0 || $isReset){
    $this->list = filterTools::getBadWords($this->filename);
    $this->memcache->set($this->key, $this->list);
    $log_data = Log::formatData($this->list);
    Log::logWrite($log_data, 'bad.words','init');
    }
    }
    /**
    * 获取列表
    * @return mixed
    */
    function getList(){
    return $this->list;
    }
    }
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/24 7:23:12