Bycie trollem internetowym ma swoje plusy i minusy, można kogoś zbluzgać bez powodu i cieszyć się swoją głupotą, czasami jednak administratorzy stron walczą z trollami stosując wymyślne filtry.
Tak jest lub było w przypadku wykrywania znanego „klaczowego” trolla okupującego swego czasu forum 4programmers, sprytny administrator Adam Boduch postanowił walczyć z twórczością trolla stosując taki oto wymyślny filtr:
<?php /* ... */ Wrapper\Engine::instance()->atInit(function($engine) { $is_troll_z_play = has_troll_cookie(); if ($_SERVER['REQUEST_METHOD'] === 'POST' && @$_GET['mode'] === 'submit') { if (isset($_POST['username']) && isset($_POST['content'])) { // tylko anonimow $matches_nick = troll_count_matches($_POST['username'], array( '/deus/i' => 2.0, '/klacz/i' => 2.0, '/demonical.?monk/i' => 2.0 )); $pattern_body = array( '/(?<!u)rucha/i' => 1.0, '/klacz/i' => 1.0, '/kutas/i' => 1.0, '/sra/i' => 1.0, '/g(ó|o)wn/i' => 1.0, '/sperm/i' => 1.0, '/ss(a|ie)/i' => 0.5, '/wyli(z|ż)/i' => 0.5, '/stajni/i' => 0.5, '/zoofil/i' => 0.5 ); $matches_body = troll_count_matches($_POST['content'], $pattern_body); if (isset($_POST['subject'])) { // nowy temat $matches_body += 1.5 * troll_count_matches($_POST['subject'], $pattern_body); $matches_body += 1.5 * troll_count_matches($_POST['tag'], $pattern_body); } if ($matches_nick + $matches_body > 2 || has_troll_cookie()) { $is_troll_z_play = true; $engine->log('contents.log', array( 'username' => $_POST['username'], 'content' => $_POST['content'], 'title' => @$_POST['title'], 'tag' => @$_POST['tag'] )); } } } if ($is_troll_z_play) { define('TROLL_Z_PLAY', true); unset($_COOKIE['sid']); unset($_COOKIE['temp']); } }); /* ... */
Regularne wyrażenia w połączeniu z systemem punktacji pozwoliły raz na zawsze pozbyć się trolla z forum, a Wam prezentuję to jako znakomity pomysł na wykrywanie tego typu niechcianych treści na stronach.