askedio/laravel5-profanity-filter

1.10 2018-10-19 16:07 UTC

This package is auto-updated.

Last update: 2024-08-29 04:19:56 UTC


README

Build Status StyleCI

Laravel 不雅词过滤器

使用 Laravel 的 本地化 功能或任何 PHP 应用程序以及一些自定义编码来从字符串中过滤不雅词或其他不良词汇。

安装

composer require askedio/laravel5-profanity-filter

在 config/app.php 中注册。

在 Laravel 5.4 或更低版本中注册服务提供者以启用该包

Askedio\Laravel5ProfanityFilter\Providers\ProfanityFilterServiceProvider::class,

配置

php artisan vendor:publish

您可以在 config/profanity.php 中的设置中编辑默认过滤词列表。

replaceWith 也可以是一组字符,用于随机替换,例如 '&%^@#'

您可以在 resources/lang/[language]/profanity.php 中为每种语言创建自己的词表。

用法

$string = app('profanityFilter')->filter('something with a bad word');

$string 将包含过滤后的结果。

您也可以在行内定义

$string = app('profanityFilter')->replaceWith('#')->replaceFullWords(false)->filter('something with a bad word'));

您还可以使用 Laravel 的 验证 功能使用 profanity 过滤器

$request->validate([
    'title' => 'required|profanity|unique:posts|max:255',
]);

选项

  • filter($string = string, $details = boolean) 传递一个要过滤的字符串。

    • 启用详情以返回结果数组
      [
        "orig" => "",
        "clean" => "",
        "hasMatch" => boolean,
        "matched" => []
      ]
  • reset()replaceWithreplaceFullWords 重置为默认值。

  • replaceWith(string) 更改用于替换过滤字符串的字符。

  • replaceFullWords(boolean) 启用替换完整单词,禁用替换部分单词。

使用 PHP 的不雅词过滤器

您也可以在不使用 Laravel 的情况下使用此包。

use Askedio\Laravel5ProfanityFilter\ProfanityFilter;

$config = []; // Data from `resources/config/profanity.php`
$badWordsArray = []; // Data from `resources/lang/[lang]/profanity.php`

$profanityFilter =  new ProfanityFilter($config, $badWordsArray);
$string = $profanityFilter->filter('something with a bad word');

致谢

此包基于 banbuilder