PHP敏感词处理

composer require lustre/php-dfa-sensitive
use DfaFilter\SensitiveHelper;
/**
 * 过滤敏感词
 */
public function getSensitiveWord() {
	$json = new Json();
	$red = Red::create();
	$wordData = $red->get('tenseven_sensitive_word');
	
	if ($wordData) {
		$wordData = json_decode($wordData,true);
	} else {
		$sensitive_word = M('sensitive_word');
		$wordData = $sensitive_word->getField('name',true);
		$red->setex('tenseven_sensitive_word',60,json_encode($wordData));
	}


	$text = $_POST['text'];
	$handle = SensitiveHelper::init()->setTree($wordData);
	$markedContent = $handle->mark($text, '<mark>', '</mark>');
	$json->S($markedContent);
}

离开事件

$("#text").blur(function(){
    var text = $(this).val();
    $.ajax({
        type:'POST',
        url:'__APP__/Public/getSensitiveWord',
        data: {text: text},
        dataType:'json',
        success:function(data){
            if(data.errno == 0){
                $('#show_sensitive').html(data.data);
            }else{
                alert(data.errdesc);
                return false;
            }
        }
    });
});

可以用表管理敏感词,sensitive_word。

CREATE TABLE `tf_sensitive_word` (
   `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id' ,
   `name` VARCHAR(50) NOT NULL COMMENT '名称' ,
   `create_time` INT(11) NOT NULL  COMMENT '创建时间' ,
   PRIMARY KEY (`id`),
   UNIQUE (`name`))
  ENGINE = InnoDB CHARSET=utf8 COLLATE utf8_general_ci COMMENT = '抖音敏感词表';
posted @ 2020-08-01 16:40  TBHacker  阅读(751)  评论(0编辑  收藏  举报