joshuabedford/laravel-word-filter

Laravel 的单词和脏话过滤器。

v1.0.4 2019-03-08 16:30 UTC

This package is auto-updated.

Last update: 2024-09-09 14:03:53 UTC


README

附言:是的,我在尽力完成这篇文档。不,我大多数这些单词/短语都不了解。

Laravel Word Filter

安装后允许过滤或拒绝禁止的单词。可以作为独立应用或与 Laravel 验证器一起使用。利用两个数据库表来存储可接受和禁止的单词的白名单和黑名单。可用于 Laravel 的表单 验证 功能(例如防止某些用户名),拒绝某些输入并要求用户修正。

安装

composer require joshuabedford/laravel-word-filter

配置

php artisan vendor:publish

上面的命令将发布相应的文件。接下来,我们必须安装数据库表。

php artisan migrate

现在数据库表已经安装,我们可以用数据填充它们。

php artisan db:seed --class=JoshuaBedford\\LaravelWordFilter\\Database\\Seeds\\DatabaseSeeder

这将用我们认为需要列入黑名单或白名单的单词列表填充数据库。

使用

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

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

您还可以直接定义一些东西

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

您还可以使用 word 过滤器与 Laravel 的 验证 功能一起使用

$request->validate([
    'username' => 'required|word|unique:users|max:255',
]);

选项

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

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

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

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

致谢

本包基于 LaravelProfanityFilter,后者基于 banbuilder