S komentářovým spamem se na La Trine prakticky nesetkávám. Lví podíl na tom má funkce náhled komentáře, jejímž vedlejším efektem je odrazení spamerů. Takže konkrétní podobu spamů příliš neznám, ale tipuji, že většinou půjde o pouhé shluky odkazů. Je to tak?

Pokud formátujete komentáře pomocí Texy!, pak by se vám mohla hodit následující finta. Texy všechny odkazy, na které při formátování narazí, zapisuje do sumáře. A je jedno, jestli byl odkaz zapsán HTML značkou <a href> nebo Texy syntaxí.

$texy = new Texy;
$html = $texy->process($text);

// seznam odkazů
$links = $texy->summary->links;

// pozor - pro verzi 1.2 a novější je to
$links = $texy->summary['links'];

print_r($link);

Takže po zformátování komentáře se mu můžeme podívat na zoubek a zjistit, zda-li nejde o spam. V praxi by nejspíš stačilo omezit počet odkazů v komentáři…

if (count($links) > LINK_LIMIT) ...

…případně stanovit nějaký rozumný poměr mezi délkou textu a počtem odkazů…

if (strlen($text) / count($links) < LINK_RATIO) ...

…nebo dokonce jednotlivé odkazy analyzovat.

foreach ($links as $url)
{
	if (...)
}

Ale to už je jen na vás 🙂