Orario di accesso alla pagina  13:34 - 25:11:2009
Rilevazione di parole indesiderate
Questa volta voglio porre l'attenzione ad una funzione che può rivelarsi utile soprettutto quando si vuole costruire un guestbook o una chat. Mi riferisco ad una funzione in grado di captare all'interno del messaggio lasciato dall'utente delle parole che non vogliamo ci siano. Andiamo a vedere come costruire questa funzione che chiameremo 'controlla':
<?
function controlla($text)
{
$proibito=array("gatto","cane");
$result=0;
$dim=count($proibito);
for ($i=0;$i<$dim;$i++)
{
if (stristr($text,$proibito[$i]))
{
$result=1;
}
}
return $result;
}

$testo="Oggi ho portato a spasso il mio cane";
if (controlla($testo)) echo "Ci sono parole non ammesse nel messaggio"; else echo "Tutto ok";
?>

Commento al codice:

La funzione controlla ha come argomento il testo che si vuole andare ad analizzare. Si costruisce un array di nome proibito contenente le parole che non si vuole ci siano all'interno del testo inserito. In questo caso non si vuole che il testo inserito contenga la parola cane o gatto. La variabile $result è un indicatore che vale 1 oppure 0 a seconda che sia stata trovata o non sia stata trovata nel testo una parola proibita. Il ciclo for scandisce tutte le parole proibite nell'array mentre la funzione predefinita stristr determina se la parola è presente nel testo. Per provare la validità della funzione si memorizza un testo nella variabile $testo e con un ciclo if mettiamo alla prova la funzione 'controlla'.
Questo esempio può essere adattato per costruire un sistema per bloccare messaggi contenenti parole indesiderate in qualsiasi vostra applicazione.

Articolo scritto dal webmaster di TuttoPhp