Sto tentando di far stampare la parola ma stampa solo Parola non ammessa senza mettere la parola stessa intercettata
Codice PHP:
if (!preg_replace("/^(mela|pera|pesca)$/i","$x",$nome)){
echo "Parola $x non ammessa";
}
Sto tentando di far stampare la parola ma stampa solo Parola non ammessa senza mettere la parola stessa intercettata
Codice PHP:
if (!preg_replace("/^(mela|pera|pesca)$/i","$x",$nome)){
echo "Parola $x non ammessa";
}
http://it.php.net/preg_replace
preg_replace restituisce null solo in caso di errore
Che ci metto allora?Originariamente inviato da garakkio
http://it.php.net/preg_replace
preg_replace restituisce null solo in caso di errore![]()
devi stampare $nome, non $x
preg_replace ti restituisce il 3° parametro ($nome quindi) modificato o no, oppure settato a NULL in caso di errore.
Così sembra funzionare, ma se a $nome (terzo parametro) ci aggiungo un altro campo es $messaggio, non va più beneOriginariamente inviato da sir daniel
devi stampare $nome, non $x
preg_replace ti restituisce il 3° parametro ($nome quindi) modificato o no, oppure settato a NULL in caso di errore.
Codice PHP:
if (!preg_replace("/^(mela|pera|pesca)$/i","$x",$nome)){
echo "Parola $nome non ammessa";
}
Potresti spiegare cosa stai cercando di fare? Devi fare un controllo o una sostituzione?
che intendi con aggiungere $messaggio?Originariamente inviato da Ht28
Così sembra funzionare, ma se a $nome (terzo parametro) ci aggiungo un altro campo es $messaggio, non va più bene
Se devi controllare che $nome corrisponda solo a mela, pera o banana, ti basta fare
Con preg_replace sostituisci tutto ciò che non è mela pera o banana con $xCodice PHP:
if(!preg_match('/^(mela|pera|banana)$/i', $nome)) {
echo "Parola $nome non ammessa.";
}
Se nel campo nome e messaggio viene scritta una o più parole che ci sono nella regex, deve uscire l'alert con la parola proibita che è stata scritta nel campo (o campi)Originariamente inviato da garakkio
Potresti spiegare cosa stai cercando di fare? Devi fare un controllo o una sostituzione?
Codice PHP:
if (!preg_replace("/^(mela|pera|pesca)$/i","",$nome)){
echo "Parola $nome non ammessa";
}
e tanto ci volevaOriginariamente inviato da Ht28
Se nel campo nome e messaggio viene scritta una o più parole che ci sono nella regex, deve uscire l'alert con la parola proibita che è stata scritta nel campo (o campi)
Codice PHP:
if (!preg_replace("/^(mela|pera|pesca)$/i","",$nome)){
echo "Parola $nome non ammessa";
}
Codice PHP:
if(preg_match('/(mela|pera|banana)/i', $nome, $match) OR preg_match('/(mela|pera|banana)/i', $messaggio, $match2)) {
echo "Parola $match[0] non ammessa.
";
echo "Parola $match2[0] non ammessa.
";
}
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;
}