SpamDetector
in package
Standalone spam detection service.
Analyzes content for spam patterns including:
- Cyrillic characters
- Mixed-language phrases (Cyrillic + English keywords)
- Suspicious keywords (Unicode-safe matching)
Tags
Table of Contents
- $mixedLanguageWords : array<string|int, string>
- $suspiciousKeywords : array<string|int, string>
- __construct() : mixed
- analyze() : array<string|int, null|bool|string|string[]>
- Analyze content for spam patterns.
- flattenContent() : string
- Flatten nested array or string into a single string for analysis.
- isSpam() : bool
- Quick check - returns true if content is spam.
- setKeywords() : self
- setMixedLanguageWords() : self
- containsCyrillicCharacters() : bool
- Check if content contains Cyrillic characters.
- containsMixedLanguagePhrases() : bool
- Check if content contains mixed Cyrillic and English spam phrases.
- findSuspiciousKeyword() : null|string
- Find suspicious keywords in content (Unicode-safe).
Properties
$mixedLanguageWords
private
array<string|int, string>
$mixedLanguageWords
$suspiciousKeywords
private
array<string|int, string>
$suspiciousKeywords
Methods
__construct()
public
__construct([array<string|int, string> $suspiciousKeywords = [] ][, array<string|int, string> $mixedLanguageWords = [] ]) : mixed
Parameters
- $suspiciousKeywords : array<string|int, string> = []
- $mixedLanguageWords : array<string|int, string> = []
Return values
mixed —analyze()
Analyze content for spam patterns.
public
analyze(string $content) : array<string|int, null|bool|string|string[]>
Detection order (most specific to least specific):
- Suspicious keywords (exact matches)
- Mixed-language phrases (Cyrillic + English spam patterns)
- Cyrillic characters (broad catch-all)
Parameters
- $content : string
-
The content to analyze
Tags
Return values
array<string|int, null|bool|string|string[]> —flattenContent()
Flatten nested array or string into a single string for analysis.
public
flattenContent(array<string|int, mixed>|string $value) : string
Parameters
- $value : array<string|int, mixed>|string
Return values
string —isSpam()
Quick check - returns true if content is spam.
public
isSpam(string $content) : bool
Parameters
- $content : string
Return values
bool —setKeywords()
public
setKeywords(array<string|int, string> $keywords) : self
Parameters
- $keywords : array<string|int, string>
Return values
self —setMixedLanguageWords()
public
setMixedLanguageWords(array<string|int, string> $words) : self
Parameters
- $words : array<string|int, string>
Return values
self —containsCyrillicCharacters()
Check if content contains Cyrillic characters.
private
containsCyrillicCharacters(string $content) : bool
Parameters
- $content : string
Return values
bool —containsMixedLanguagePhrases()
Check if content contains mixed Cyrillic and English spam phrases.
private
containsMixedLanguagePhrases(string $content) : bool
Parameters
- $content : string
Return values
bool —findSuspiciousKeyword()
Find suspicious keywords in content (Unicode-safe).
private
findSuspiciousKeyword(string $content) : null|string
Parameters
- $content : string
Return values
null|string —The matched keyword, or null if none found