Ciao a tutti, ho una funzione che mi trasforma idel testo contenuto in una textarea in URL cliccabile... Il suo dovere lo fa ma il problema sorge nel momento in cui un utente mi scrive proprio un tag A con i relativi link all'interno,ovvero vi mostro il codice:
Codice PHP:
# funzione che trasforma il testo in url cliccabili
function testo_in_url($stringa){
  
// conversione tramite sostituzione con espressioni regolari
  
return preg_replace("~(http|https)://(.*?)(\s|\n|[,.?!](\s|\n)|$)~""<a href=\"$1://$2\" rel=\"nofollow\">$1://$2</a>$3"$stringa);

se io scrivo:

$testo = ' ecco il mio link: http://www.miosito.com ';
$testo = testo_in_url($testo );
output: http://www.miosito.com


va benissimo, ma se l'utente mi scrive:

$testo = ' ecco il mio link: http://www.miosito.com';
$testo = testo_in_url($testo );

ovviamente il link che mi crea sarà:
output: http://www.miosito.com">http://www.miosito.com</a>
http://www.miosito.com</a>

perchè tutta la stringa è attaccata... io per ovviare a questo problema ho creato una funzione che mi mette gli spazi quando incontra i caratteri " <>
Codice PHP:
function spaziaturaTag($testo)
{
    return 
preg_replace('#([<>"])#'' $1 ',$testo);

Ma non credo sia il metodo più giusto ed elegante per trattare il problema.. mi aiutate per favore?