tbetool/spam-doctor

该包最新版本(1.3.0)没有提供许可信息。

防止您的邮件被垃圾邮件攻击。用于检查内容是否包含垃圾邮件单词的PHP库。

1.3.0 2018-10-17 07:17 UTC

This package is auto-updated.

Last update: 2024-09-17 21:03:31 UTC


README

在收到垃圾邮件之前检查您的邮件内容是否存在垃圾邮件可能性。用于检查内容是否包含垃圾邮件单词的PHP库。

使用库

安装

使用composer在PHP项目中安装库

composer require tbetool/spam-doctor

使用库

$spamDoctor = new SpamDoctor();

$spamDoctor->check($text_content);

check()参数

  1. text_content:要检查的文本内容。您可以传递纯文本和HTML内容。
  2. is_html (布尔值):如果text_contentHTML,则将第二个参数设置为true默认值:false

获取输出

$spamDoctor->getSpamItems();

返回包含垃圾邮件关键字及其出现次数的数组。

[
   0 => [
     item => 'welcome',
     count => 4
   ]
]
$spamDoctor->getSpamPositions();

返回垃圾邮件项位置的数组,按升序排列。

[
   0 => 4,
   1 => 12,
   2 => 25
]
$spamDoctor->getHighlighted();

返回带有红色高亮显示的垃圾邮件关键字的完整字符串。如果提供的检查内容是HTML内容,则返回HTML内容的文本。
要获取带高亮的HTML内容,请将参数传递为true

$spamDoctor->getHighlighted(true);

返回带有垃圾邮件关键字高亮的完整HTML内容。

$spamDoctor->getSpamDictionary();

返回用于检测垃圾邮件内容的完整单词列表的数组。

替换规则

库还支持替换规则,可以在运行时替换垃圾邮件文本。您可以通过键值对传递JSON规则,其中垃圾邮件文本中的键被替换为相应的值。

要设置替换规则,请在调用check()之前使用以下函数

$replace_rule = [
    'o' => 0,
    'O' => 0,
    '*' => '_'
];

$replace_rule = json_encode($replace_rule);

$spamDoctor->setReplaceRule($replace_rule);

以上示例将将oO(大小写O)替换为0(零)

如果replace_rule中找不到字母,您也可以通过传递*键和相应的值来传递要替换的常见字母。

例如,在上面的示例中,如果垃圾邮件单词包含o*O,则将替换为0,否则将在单词中的随机位置添加_(下划线)。

自学习

该库在处理垃圾邮件内容时自行学习。它在data目录中生成了一个名为spam_data.txt的字典文件。

您还可以通过传递JSON数据到teachDoctor()函数来教给医生。

$spamDoctor->teachDoctor($json_data);

注意:JSON数据可以是2维数组

异常处理

示例

try {
    $spamDoctor->check($html_content, true);
} catch (Exception $exception) {
    echo $exception->getMessage();
}

错误报告

如果您发现任何错误,请创建一个问题

支持和贡献

有什么遗漏的吗?

  • Fork仓库
  • 做出您的贡献
  • 创建一个pull request