PHPBBIntegrare PHPBB PHPFunzioni PHP CFunzioni C EcologiaLa mia ecologia   Chi siamoChi è Senamion HomeHome page corner Il Web e l'ecologia

Senamion


Chi siamo:

Il web e l'ecologia, condividere il web e un momento di riflessione sullo stato dell'ecologia e sul suo futuro

Google

[PHP] Evidenziare delle parole all’interno di un testo formattato

19 Ottobre 2006 by Giovanni | Argomenti: , , , , , , | 4736

Spesso, per una funzione di ricerca, è interessante evidenziare il testo ricercato.
La soluzione è un semplice:

str_replace("testo_da_cercare", "<b>testo_da_cercare</b>", $stringa);


La difficoltà può derivare dal fatto di avere all’interno del nostro testo dei tag html, ad esempio quando si è memorizzata l’intera pagina o si è usato degli editor visuali (come fckEditor o htmlArea) che memorizzano anche la formattazione.

E’ un po’ macchinosa, ma ecco qui una possibile soluzione.
A questa funzione è sufficiente passare la stringa da cercare ed il testo e la funzione evidenzia il testo con i tab <b>.

// // FUNZIONE CHE EVIDENZIA CIO' CHE NON E' TRA I TAG < E > // function evidenziaTesto($str, $testo) { $str = str_replace(">", "#MAGGIORE#>", $str); $str = str_replace("<", "<#MINORE#", $str); $pezzi = split("[<>]", $str); foreach ($pezzi AS $key => $pezzo) if (strncmp($pezzo, "#MINORE#", 8) != 0) $pezzi[$key] = str_replace($testo, "<b>$testo</b>", $pezzo); $str = implode("", $pezzi); $str = str_replace("#MAGGIORE#", ">", $str); $str = str_replace("#MINORE#", "<", $str); return $str; } echo evidenziaTesto("<a href='htpp://www.reame.it'>Evviva il re di roma</a>", "re");

Risultato:

<a href='htpp://www.reame.it'>Evviva il <b>re</b> di roma</a>

Se qualcuno ha una soluzione più semplice è bene accetto…

Pubblicato in Funzioni e classi PHP e C |

Scrivi un commento