Salve ragazzi,
sto facendo uno script per effettuare la ricerca di una (o più) parole in un database. Lo script e le query funzionano a dovere, l'ultima parte che mi "manca" è evidenziare le parole cercate..
Per ora ho utilizzato una semplice espressione regolare:
codice:
$n_words_search = explode(" ", $cerca_prodotto);
if(@count($n_words_search)>0){
for($w=0; $w<count($n_words_search); $w++){
$highlight = $n_words_search[$w];
$titolo_evidenziato = preg_replace('/('. $highlight . ')/i', '<span class="highlight">$1</span>', $titolo);
$new_desc = preg_replace('/('. $highlight . ')/i', '<span class="highlight">$1</span>', $new_desc);
}
}else{
$titolo_evidenziato = preg_replace('/('. $cerca_prodotto . ')/i', '<span class="highlight">$1</span>', $titolo);
$new_desc = preg_replace('/('. $cerca_prodotto . ')/i', '<span class="highlight">$1</span>', $new_desc);
}
in "$cerca_prodotto" è contenuta la mia chiave di ricerca, quello che faccio è semplicemente: scomporla per il carattere "spazio" e cercare ogni parola nel mio "titolo" e "descrizione".
Questo script ha un problema pero, se io cercassi "prodotto1 a" con questo script la mia chiave viene scomposta in "prodotto1" e "a", ora immaginate che io abbia un record che al campo Titolo si ritrova "prodotto1 abc", il mio script al primo giro mi evidenzia la parola "prodotto1" al secondo giro dovrebbe evidenziare la lettera "a" il problema però è che mi evidenzia tutte le A anche nella scritta "<span class="highlight">....</a>" che ha aggiunto al giro prima!! quindi mi ritrovo uno span nello span non so se mi spiego 
Quello che mi chiedo quindi è:
esiste un modo per dire alla mia espressione regolare "se trovi la scritta <span class="highlight"> o la scritta </span> allora non fare nulla e passa oltre"??