Maison php教程 PHP源码 php过滤敏感词

php过滤敏感词

May 25, 2016 pm 05:02 PM

php过滤敏感词

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

<?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, &#39;bad.words&#39;,&#39;init&#39;);

        }

    }

  

    /**

     * 获取列表

     * @return mixed

     */

    function getList(){

        return $this->list;

    }

}

Copier après la connexion

                       


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)