Originariamente inviato da garakkio
Allora non devi usare preg_replace, ma preg_match.
Inoltre non devi usare i delimitatori ^ e $
Comunque secondo me fai molto prima a usare un array e un semplice controllo con strpos, come questo:

Codice PHP:
function strpos_arr($haystack$needle) {
    if(!
is_array($needle)) $needle = array($needle);
    foreach(
$needle as $what) {
        if((
$pos strpos($haystack$what))!==false) return $pos;
    }
    return 
false;

Un codice con l'array c'è l'ho già funzionante, ma ho pensato di creare una regex per semplificare l'intercettazione delle parole, mi spiego: con l'array non posso mettere /i

Ecco il mio codice originale

Codice PHP:
$paroleNoGood = array ("mela","pera","pesca","''");

$stringa $_POST['nome'].' '.$citta.' '.$email.' '.$messaggio
foreach(
$paroleNoGood as $parola){
if (
stristr($stringa$parola) !== false){
$errore .= "<span class=\"alert-Guest\">&bull;La parola \"[b]$parola[/b]\" non &egrave; ammessa</span>

"
;
 }