In questo modo scomponi il testo in tag (aperture, chiusura o aperto-chiuso)+parte testuale.Codice PHP:
$reg_expr = "/(<\\/?\\w+\\s*[^>]*\\/?>)?([^<>]*)/is";
preg_match_all($reg_expr, $string, $lines, PREG_SET_ORDER);
Poi prendi il testo: $lines[$i][2] e ci fai quello che vuoi senza toccare i tag.
Poi alla fine ricomponi il tutto.
Quello che devi fare è molto simile a quest'altra funzione che serve ad altro, ma credimi, la procedura che ti serve è identica:
http://abidibo.otto.to.it/index.php?evt[blog-viewList]&id=17
non ho il tempo di scriverti per intero la funzione, comunque il concetto è il seguente:
- suddividi la stringa in tag+testo
es:
lalalalaboldlalala<img .../>ancora testo</p>
viene suddiviso in:
lalalala
bold
lalala
<img.../>ancora testo
</p>
- prendi solo i testi con $lines[$i][2] e ci fai quello che vuoi
es.
lalalala
bold
etc..
- ricomponi la stringa, per ogni $i
$final_text .= $lines[$i][1].functionModifyText($lines[$i][2]);
Lo so di non essere stato molto chiaro, ma è piu' semplice di queòl che sembra.
ciao!