Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544

    Preg_replace non stampa

    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";


  2. #2
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    http://it.php.net/preg_replace

    preg_replace restituisce null solo in caso di errore

  3. #3
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da garakkio
    http://it.php.net/preg_replace

    preg_replace restituisce null solo in caso di errore
    Che ci metto allora?

  4. #4
    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.

  5. #5
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente 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.
    Così sembra funzionare, ma se a $nome (terzo parametro) ci aggiungo un altro campo es $messaggio, non va più bene

    Codice PHP:
    if (!preg_replace("/^(mela|pera|pesca)$/i","$x",$nome)){
    echo 
    "Parola $nome non ammessa";


  6. #6
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Potresti spiegare cosa stai cercando di fare? Devi fare un controllo o una sostituzione?

  7. #7
    Originariamente inviato da Ht28
    Così sembra funzionare, ma se a $nome (terzo parametro) ci aggiungo un altro campo es $messaggio, non va più bene
    che intendi con aggiungere $messaggio?

    Se devi controllare che $nome corrisponda solo a mela, pera o banana, ti basta fare

    Codice PHP:

    if(!preg_match('/^(mela|pera|banana)$/i'$nome)) {
        echo 
    "Parola $nome non ammessa.";

    Con preg_replace sostituisci tutto ciò che non è mela pera o banana con $x

  8. #8
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da garakkio
    Potresti spiegare cosa stai cercando di fare? Devi fare un controllo o una sostituzione?
    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"


  9. #9
    Originariamente 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"

    e tanto ci voleva

    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.
    "
    ;


  10. #10
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    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;


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.