Visualizzazione risultati 1 fino 4 di 4

Discussione: Evidenziare del testo cercato in una stringa

  1. #1
    Guest

    Red face Evidenziare del testo cercato in una stringa

    Salve a tutti,

    è da tempo che non posto qui su AV, perché, solitamente, trovo le risposte alle mie domande usando google o la funz. cerca del forum .

    In questo caso non sono riuscito a trovare una risp al mio problema .
    Vi espongo il mio prob: sto facendo un box di ricerca interno al mio sito e vorrei che fosse possibile cercare anche + parole e che queste vengano evidenziate in rosso.

    Ho provato così:

    Codice PHP:
    blablabla
    <?
    $parole
    = $_REQUEST['query'];
    $parole = str_replace(" ", "%%", $parole);

    $querycerca = mysql_query("SELECT * FROM `xxxx` WHERE `cccc` LIKE '%$parole%' OR `dddd` LIKE '%$parole%' ORDER BY `cid` ASC",$conn);

    while (
    $riga = mysql_fetch_array($querycerca, MYSQL_ASSOC)) {
    $trovate = "<br><br><a href=\"$this_page&amp;cid=$riga[cid]\">$riga[cccc]</a><br>$riga[dddd]<br>";

    //Evidenziamo la/le parole cercate
    $arrayparole = explode(" ", $_REQUEST['query']);
    $trovate = eregi_replace($arrayparole, "<span style=\"color:$search_color\"><b>$arrayparole</b></span>", $trovate);
    $html = $html.$trovate;
    mysql_free_result($querycerca);
    }
    echo
    $html;
    ?>
    Funziona tutto tranne la parte che mi permette di evidenziare le parole cercate

    Come posso fare in modo tale che + parole (inserite in un array come ho fatto io) vengano inserite tra i tag span style=\"color:$search_color\"><b> e </b></span>.

    Confido in un vostro aiuto.

    Ciao.

  2. #2
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Si devono usare le espressioni regolari.
    Forse non è la soluzione migliore, ma io ho fatto cos' per il mio motore di ricerca:
    Codice:
             <?
             $postrep= $row[Post]; // il testo da controllare
             ///////evidenzia
             //////////////////
             $replacement = '\\1<font style=COLOR:#ffff00 ;>\\2</font>';
             
             reset ($keys); //le parole cercate
             foreach ($keys as $parola){
               if ($blok==1){
               $parola = " $parola ";
               }
              $pattern = '(>[^<]*)('. quotemeta($parola) .')';
              $postrep = eregi_replace($pattern, $replacement, $postrep);
             }
             echo $postrep;
             ?>
    Spero ci sia tutto, ho incollato in fretta.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  3. #3
    Guest

    Predefinito

    Ok...provo e ti faccio sapere.
    Intanto ti ringrazio per l'aiuto che mi hai dato :)

    Ciao.

  4. #4
    Guest

    Predefinito

    Grazie mille. :D :D

    Ho risolto il problema con il tuo cod.

    Ciao Ciao. :)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •