denismitr / spam-detector
PHP垃圾邮件检测器
v0.4
2018-07-08 21:33 UTC
Requires
- php: ^7.0
Requires (Dev)
- phpspec/phpspec: ^4.3@dev
This package is auto-updated.
Last update: 2024-09-23 09:01:01 UTC
README
作者
Denis Mitrofanov
安装
composer require denismitr/spam-detector
用法
您可以将所需检查的数量传递给 Denismitr\Spam\Spam
类的构造函数。每个检查都必须实现 Denismitr\Spam\Contracts\Inspection
接口。目前,您将获得 6 个默认检查
- Denismitr\Spam\Inspections\AsciiOnly
- Denismitr\Spam\Inspections\YahooCustomerSupport
- Denismitr\Spam\Inspections\RussianForbiddenWords
- Denismitr\Spam\Inspections\RussianBadWords
- Denismitr\Spam\Inspections\KeyHeldDown
- Denismitr\Spam\Inspections\EnglishForbiddenWords
使用示例
$text = "Some text to check";
$spam = new Spam([
YahooCustomerSupport::class,
RussianForbiddenWords::class,
RussianBadWords::class,
KeyHeldDown::class
]);
try {
$spam->detect($text);
} catch(SpamDetected $e) {
// Do stuff
}
或者,要检查给定的字段是否包含垃圾邮件,可以使用 `detectAny` 方法
try {
$spam->detectAny([
'title' => 'Some title...',
'body' => 'Some body...'
]);
} catch(SpamDetected $e) {
// Do stuff
}
如果给定的字段中包含垃圾邮件,此方法将 抛出异常。
当然,如果您需要,另一个方法 detectAll
将在所有字段都包含垃圾邮件时抛出异常。
try {
$spam->detectAll([
'title' => 'Some title...',
'body' => 'Some body...'
]);
} catch(SpamDetected $e) {
// Do stuff
}
另一个用例是当您只想检查单个检查。为此,有一个静态方法 inspect,它接受一个字符串作为搜索范围和检查的 实例,如下所示
$text = 'Some text to check';
try {
Spam::inspect($text, new KeyHeldDown);
} catch(SpamDetected $e) {
// Do stuff
}
您可以轻松地添加自己的检查。它们必须实现 Inspection
接口。其结构如下
interface Inspection
{
/**
* @param string $text
* @return void
*/
public function detect(string $text);
}