다음 칼럼에서는 Laravel Tutorial에서 laravel 프레임워크를 사용하여 민감한 단어 필터링 기능을 구현하는 방법을 소개합니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!
https://github.com/FireLustre/php-dfa-sensitive작곡기를 통해 설치:
composer require lustre/php-dfa-sensitive
그런 다음 앱 디렉터리에 서비스를 만들고 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('dict/bk.txt'), storage_path('dict/fd.txt'), storage_path('dict/ms.txt'), storage_path('dict/qt.txt'), storage_path('dict/sq.txt'), storage_path('dict/tf.txt'), ]; $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 = '', $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); } }
를 추가한 다음 프로젝트에서 다음을 수행할 수 있습니다.
를 사용하여 텍스트에 민감한 단어가 있는지 확인하세요.$bad_word = SensitiveWords::getBadWord($content); if (!empty($bad_word)) { throw new \Exception('包含敏感词:' . current($bad_word)); }
SensitiveWords::getBadWord()
민감한 단어 사전인 bk.txt...등을 저장하기 위해 저장소 디렉터리에 dict 디렉터리를 만듭니다.위 내용은 laravel 프레임워크를 사용하여 민감한 단어 필터링 기능 구현 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!