Maison  >  Article  >  cadre php  >  À propos de l'utilisation du framework Laravel pour implémenter la fonction de filtrage de mots sensibles

À propos de l'utilisation du framework Laravel pour implémenter la fonction de filtrage de mots sensibles

藏色散人
藏色散人avant
2021-01-27 13:50:232561parcourir

La colonne suivante du Tutoriel Laravel vous présentera comment utiliser le framework laravel pour implémenter la fonction de filtrage de mots sensibles. J'espère que cela sera utile aux amis dans le besoin !

Les projets récents ont une demande. Pour signer la signature de l'utilisateur, répondez aux mots sensibles, puis trouvez une extension facile à utiliser et partagez-la avec tout le monde.

https://github.com/FireLustre/php-dfa-sensitive

Installer via composer :

composer require lustre/php-dfa-sensitive
Puis dans le répertoire de l'application Créer Services et ajoutez SensitiveWords.php

<?php
namespace App\Services;
use DfaFilter\SensitiveHelper;
class SensitiveWords
{
  protected static $handle = null;
  private function __construct()
  {
  }
  private function __clone()
  {
  }
  /**
   * 获取实例
   */
  public static function getInstance($word_path = [])
  {
    if (!self::$handle) {
      //默认的一些敏感词库
      $default_path = [
        storage_path(&#39;dict/bk.txt&#39;),
        storage_path(&#39;dict/fd.txt&#39;),
        storage_path(&#39;dict/ms.txt&#39;),
        storage_path(&#39;dict/qt.txt&#39;),
        storage_path(&#39;dict/sq.txt&#39;),
        storage_path(&#39;dict/tf.txt&#39;),
      ];
      $paths = array_merge($default_path, $word_path);
      self::$handle = SensitiveHelper::init();
      if (!empty($paths)) {
        foreach ($paths as $path) {
          self::$handle->setTreeByFile($path);
        }
      }
    }
    return self::$handle;
  }
  /**
   * 检测是否含有敏感词
   */
  public static function isLegal($content)
  {
    return self::getInstance()->islegal($content);
  }
  /**
   * 敏感词过滤
   */
  public static function replace($content, $replace_char = &#39;&#39;, $repeat = false, $match_type = 1)
  {
    return self::getInstance()->replace($content, $replace_char, $repeat, $match_type);
  }
  /**
   * 标记敏感词
   */
  public static function mark($content, $start_tag, $end_tag, $match_type = 1)
  {
    return self::getInstance()->mark($content, $start_tag, $end_tag, $match_type);
  }
  /**
   * 获取文本中的敏感词
   */
  public static function getBadWord($content, $match_type = 1, $word_num = 0)
  {
    return self::getInstance()->getBadWord($content, $match_type, $word_num);
  }
}

Ensuite, nous pouvons utiliser

dans le projet pour savoir s'il y a des mots sensibles dans le texte. SensitiveWords::getBadWord()

$bad_word = SensitiveWords::getBadWord($content);
if (!empty($bad_word)) {
  throw new \Exception(&#39;包含敏感词:&#39; . current($bad_word));
}

Créez un répertoire dict dans le répertoire de stockage pour stocker le dictionnaire de mots sensibles, bk.txt...etc.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer