Buon giorno a tutti.
Ho preso sul web, la funzione che prende tutti gli acronimi presenti nel testo, e gli aggiunge il tag <acronym title="HyperText Markup Language">HTML</acronym>.
Finchè è solo testo non ho problemi, ma se nel testo vi è presente uno o più link e all'interno del link vado a richiamare attraverso l'url un file che ha nel proprio nome, un acronimo allora sono dolori.
esempio:
Codice PHP:
//questo è il testo
$text "oggi leggeremo la legge [url="pdf/HTML_xx-1999_art._xx.pdf"]HTML xx-1999 art. xx[/url]";

//se aggiungo la funzione acronymit($text), praticamente, nel testo il link lo visualizzo per esteso cosi: 
pdf/HTML_xx-1999_art._xx.pdf" title="">HTML xx-1999 art. xx 
Questa è la funzione
Codice PHP:
function acronymit($text) {
    
$acronyms = array(
                
'XHTML' => 'eXtensible HyperText Markup Language',
                
'MSIE' => 'Microsoft Internet Explorer',
                
'HTML' => 'HyperText Markup Language'
);
    
uksort($acronyms'sortr_longer'); // comment out if already sorted
    
foreach ($acronyms as $acronym => $definition) {
        
$text preg_replace("#$acronym(?!</(ac|sp))#""<acronym title=\"$definition\">$acronym</acronym>"$text);//in questo modo prendere e converte tutti gli acronimi anche se ripetuti
        //$text = preg_replace("#$acronym(?!</(ac|sp))#", "<acronym title=\"$definition\">$acronym</acronym>", $text, 1);-->se all'interno del paragrafo sono riportati gli stessi acronimi più volte, cosi prende solo il primo
        //$text = preg_replace("#$acronym(?!</(ac|sp))#", "<span class='caps'>$acronym</span>", $text);
    
}
    return 
$text;

Vi chiedo: è possibile far evitare attraverso una preg_replace, l'aggiunta del tag <acronym > quando incontra un altro tag, come in questo caso il tag <a>?
Grazie mille.