Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    passare a preg_match() dati estratti dal db

    Buongiorno,

    Ho l'esigenza di estrarre alcuni dati del db e di passarli alla funzione preg_match() al posto delle parole.

    Io ho tentato questa strada:

    function find_bad($str) {
    $sql = "select badwords from locked";
    return readArray($sql); // funzione di connessione ed estrazione
    }

    $rs = find_bad($rts);
    $r = count($rs);
    echo $r;

    foreach ($rs as $sr) {

    echo "<p>'".$sr['badwords']."'</p>";

    $sr = $sr['badwords'];

    if (preg_match($sr, $fOggetto) || preg_match($sr, $fTesto)) {
    $validate = 0;
    }

    }

    Così però le parole contate non vengono viste e il check passa oltre

    E' possibile passare quindi una variabile come primo parametro di preg_match() ?

    Grazie mille

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Come primo parametro a preg_match() devi passare il pattern formattato in modo corretto, non una semplice parola.

    Prova così
    Codice PHP:
    if (preg_match('/'.$sr.'/'$fOggetto) || preg_match('/'.$sr.'/'$fTesto)) 

  3. #3
    Ciao, tu lo hai testato? Mi pare che non funziona...

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Io ho fatto così e funziona
    Codice PHP:
    $badwords = array('pippo','pluto');

    $fTesto "Un po' di testo contenente pluto, ma non l'altro";

    foreach ( 
    $badwords as $sr )
    {
        if ( 
    preg_match('/'.$sr.'/',$fTesto) )
        {
            echo 
    "Badword trovata! ".$sr."<br />";
        }
        else
        {
            echo 
    "<p>".$sr." non è una badword</p>";
        }

    Togliendo i '/' da 2 warning sul fatto che il delimitatore del pattern per la regex non è valido (ovviamente) e non riconosce le badwords

    Adattalo ai dati che hai e vedrai che funzionerà anche a te.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.