Newsgroup: it.comp.www.php
Titolo: Parolacce - un passo avanti?

Ho visto che un po' di tempo fa c'erano alcuni post su come filtrare le 
parolacce: forse la soluzione e' vicina (l'ideale sarebbe spedire 15.000 
volt sulla tastiera di chi le sta scrivendo, cosi' non potrebbe 
propagare il suo DNA bacato!).
Scherzi a parte, usando un array di "sole" 96 regexp sono riuscito a 
fare un filtro abbastanza decente. Non e' un missile di velocita' 
(effettua fino a 96 controlli per ogni parola esaminata) ma, vista la 
velocita' delle nostre linee, direi che la cosa non e' troppo influente 
su quanto vede l'utente.
In ogni caso le regexp permettono di ridurre drasticamente il numero di 
parole da cercare: singolari, plurali e varie divagazioni dialettali 
(per esempio le U al posto delle O come si usa nel NordOvest) si possono 
inserire nella stessa ricerca.
Ecco l'esempietto (con le parole meno impegnative ma piu' significative 
dal punto di vista del codice: scrivetemi, se le volete tutte gia' pronte!)
###############
$parola = "parola_da_esaminare";
$parolacce = array (
     'b(o|u)rdel.*',
     'ca(g|cc)(a|he).*',
     'pirl.*',
     'rompi(p|b|c).*',
     't(a|e)r(r)?(o|u)n.*'
);
foreach ($parolacce as $pc) {
     if (preg_match("/(^$pc)X/i", ($parola . "X"))) {
         $testo = "";
         break;
     } else {
         $testo = $parola;
     }
}
echo $testo;
###############
Il tutto puo' essere infilato in un loop (io prelevo le parole da 
esaminare da un database MySQL).
Il "lampo di genio" e' stato l'aggiunta della "X" finale, che mi ha 
risolto il problema delle regexp estese fino a fondo stringa. Infatti
usando /^$pc$/ come contollo non si aveva la filtratura di tutti i 
termini, anche se non ne ho capito bene il motivo (dovro' mica leggere 
TUTTI i manuali?).
Spero che questo codicillo vi possa essere utile!
Ho anche elaborato un modo rapido per estrapolare le parolacce da un 
normale dizionario su CD: si basa su un loop di visualizzazione dei 
lemmi, su una zia ottantenne e su un cardiofrequenzimetro. Se volete vi 
posso prestare la zia ;-)
Buon date("l") a tutti.
Marco Bernardini
bernama chiocciola 
libero.it

     't(a|e)r(r)?(o|u)n.*'
-------^^^^^^^^^^^^^^^^^
fico, ma non sapevo che *terrone* fosse una parolaccia...
ciao e grazie ;)
-- 
Fox Mulder
...the truth is out there

 ciao e grazie ;)
Dipende dall'intento con cui la dici, come "uccello", "prugna" e 
"passera" (a proposito, adesso ha cambiato volatile: si chiama "averla"...).
Purtroppo, dovendo sistemare il sito di un Comune, devo farci un po' di 
attenzione.
Penso che dovro' anche evitare determinate accoppiate di parole, tipo 
"sindaco buffone" e cosi' via.
ciao
Marco Bernardini

 fico, ma non sapevo che *terrone* fosse una parolaccia...
ohhh, non si dice 'fico'!!!
vai a lavarti la bocca col sapone!
:-)
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://www.gnu.org/philosophy/free-world.html

 :-)
ooops! perbacco, hai ragione :)


 "sindaco buffone" e cosi' via.
rotfl :)


 posso prestare la zia ;-)
IMHO meglio la liberta' totale con un bel disclaimer.
La gente riesce sempre ad esprimersi in modo diretto e chiaro.

 (con tutti i pesi della cosa)
No, si chiama 'pararsi il culo': non voglio farmi tirare giu' dal letto 
alle 7 di mattina (come ogni buon programmatore vado a dormire alle 
4.30) per ripulire il sito, visto che la competenza informatica media 
dei dipendenti comunali non va oltre il cambiare lo sfondo di Windows ;-)
In effetti la parola iniziale era un'altra (che fa rima con buffone).
Magari aggiungero' una nota al forum: "gli insulti sono ammessi, purche' 
documentati".
Non sarebbe male uno script che, in caso di insulti al Sindaco o alla 
Giunta, ne chiedesse il motivo: in questo modo ci sarebbe un'opposizione 
piu' costruttiva...
D'altra parte, in un paese di 1000 abitanti dove il sindaco e' anche il 
tabaccaio/salumiere, gli insulti si fa prima a presentarli personalmente.
Ritengo che questo sara' il Comune con il maggior rapporto tabelle 
MySQL/abitante: per ora ce ne sono 18.
Quando il tutto sara' in onda postero' l'indirizzo: ci saranno il 
calendario con il santo del giorno in MouseOver, le condizioni meteo 
grabbate dal METAR, i moduli PDF dinamici, ecc. ecc., e tutto in PHP.
Magari a qualcuno servira' qualcosa...
ciao
Marco Bernardini
bernama chiocciola libero it

 dalle regole che hai nel tuo array [permutazioni]).
Uh?
Quando stavo scaricando quella pagina mi deve essere caduta la linea...
Potresti chiarirmi il procedimento (o dirmi a che pagina lo trovo) per 
favore?
GIA
(grazie in anticipo, non Gruppo Islamico Armato, caro Echelon!)
Marco Bernardini

      'pirl.*',
Ma se uno per caso nomina un giocatore del milan... è una parolaccia? In
effetti... :)
Comunque la vedo dura.. un filtro serio non è semplice... perchè uno è vero
che ci casca la prima volta.. ma la seconda sul tuo sito ufficiale del
comune ti mette una frase del tipo...
"Il sindaco di questo comune è proprio uno str0nz0 e sua moglie una gran
troi@"
(pardon per l'esempio stile Oxford.. ma era per rendere l'idea e del resto è
questo l'argomento della discussione).
L'esempio è banale.. ma le varianti di questo tipo sono praticamente
un'infinità.
Un filtro sui significanti lo puoi anche mettere in piedi.. ma per uno sui
significati devi ricorrere alla moderazione o ad altri espedienti (tipo la
registrazione obbligatoria usando dati veritieri.. ecc ecc).

 troi@"
Anche
il sindaco è un P I R L A
non verrebbe letta..
[gliene stiamo dicendo di tutti i colori al povero sindaco =)))]
se devi censurare puoi farlo preventivamente (ricevendo i messaggi e
abilitandoli manualmente) oppure successivamente, avendo la possibilità
tramite un tool di bloccare i messaggi indesiderati, unitamente al controllo
delle parolacce giusto per darti una mano nel compito.
LAMASE

 delle parolacce giusto per darti una mano nel compito.
Certo, il controllo delle parolacce va solo a finire nell'elenco delle 
parole piu' richieste nel motore di ricerca interno (per il trucchetto 
vedi dopo).
Per il forum e' richiesta la registrazione, ma ho escluso la 
visualizzazione dell'e-mail e del nome reale dai messaggi, tanto per 
dare una parvenza di anonimato.
In questo modo posso partecipare con 5 o 6 nick diversi se il forum non 
si anima abbastanza, magari autoinsultandomi con parole selezionate (e 
uno dei nick sara' Samantha o qualcosa di simile: conoscendo i 
compaesani fara' aumentare la partecipazione).
Dubito che qualcuno abbia la voglia di fare da moderatore, ma provero' a 
chiedere al parroco: in questo modo le pagine del forum rimarranno 
saranno veloci da scaricare.
Dicevo del trucchetto per il motore di ricerca: ho visto che a fare le 
ricerche sulle pagine come generate dal server la cosa diventa lunga, 
mentre a fare le ricerche sui files grezzi perdo la possibilita' di fare 
ricerche nelle tabelle dinamiche.
Per ovviare ho aggiunto un commento /* PAGINA DINAMICA */ nelle pagine 
dinamiche (ma va'): leggo tutto con un bel file("nomefile") sui files 
grezzi, molto piu' compatti e, se compare il commento, rileggo quella 
pagina come URL.
Ah, mi sono dovuto scrivere anche il motore di ricerca perche' non ne ho 
trovato uno che facesse tutto quello che volevo io come volevo io.
Sara' una @@@ata di codice, ma avra' meno richieste di Google di sicuro.
