Ho fatto una funzione che, quando faccio una ricerca, ingrassa le parole chiave trovate nel testo:
Codice PHP:
$q=$_GET["q"]; // parole chiave (anche più di una)

function evidenzia($tringa){
global 
$q//ficco la variabile nella funzione
$qer explode(" "$q); // BOOM
foreach ($qer as $qq ) { $tringa=str_replace($qq"[b]$qq[/b]"$tringa);}; // ogni chiave che trovo nel testo, la ingrasso
return $tringa;};

// cerco nel database, recupero campi, ecc.

// stampo risultati:
echo evidenzia($testo); 
funziona!! che bello!

==== Problema ====

Se il testo é in formato html, rischio di mettere un tag nel tag:
Se la parola chiave ($q) é "re", rischio che nel testo trovato, la funzione evidenzia mi restituisca:
codice:
HTML
<a href="www.html.it">HTNL</a>
spero che si veda coretto...

==== Soluzione ====
Come faccio? Stavo pensando ad una funzione che dica:
Se dopo l'occorrenza "ar" trovi un tag di chiusura prima di uno di apertura, non mettere il grassetto
Oppure:
Se prima dell'occorrenza "ar" trovi un tag di apertura prima di uno di chiusura, non mettere il grassetto
(che poi, sostanzialmente é la stessa cosa... )

==== Aiuto ====
C'é una funzione che mi permette questo?

P.S. il tag B é deprecato. Meglio usare STRONG
P.P.S. A me piace di più B

==== Parole chiave ====
Evidenziare risultati di ricerca
motore di ricerca
chiavi evidenziate