Ciao a tutti, ho scritto una specie di motore di ricerca (php,mysql), al momento come risultato mi viene dato il testo che contiene la parola ricercata con la parola evidenziata.
Tutto perfetto, però sorge un problema. Il testo in database contiene anche codice html.
esempio: parola di ricerca è arkus
il testo contiene: <a href="malto:arkus@html.it">arkus<a>
eseguita la query ottengo il testo scritto sopra, per evidenziare la parola io utilizzo
$testo = str_ireplace($parole[$i],"<span style=\"color: black; background-color: yellow\">$parole[$i]</span>",$testo);
il problema è che questa istruzione mi da questo risultato:
<a href="malto:<span style="color: black; background-color: yellow">arkus</span>@html.it"><span style="color: black; background-color: yellow">arkus<a>
quindi inseriscee il tag span anche all'interno della href.
Ho pensato di utilizzare la preg_replace per far in modo che vengano ignorate le parole comprese tra i caratteri < > ,quindi tutto ciò che è entro i delimitatori di un tag e che non sia case sensitive.
$testo = preg_replace($parole[$i] non comprese tra i delimitatori < >,"<span style=\"color: black; background-color: yellow\">$parole[$i]</span>",$testo);
Può essere valida come idea? Se si che tipo di espressione regolare dovrei utilizzare?
Grazie![]()