Come faccio a trasformare dinamicamente una URL in un link cliccabile?

Con PHP è possibile trasformare una URL in un collegamento ipertestuale in modo automatico, attraverso una semplice funzione che dopo aver riconosciuto la URL la trasforma automaticamente in un link.

All'interno di strumenti quali Forum e Blog, dove l'utenza può interagire lasciando propri contributi, ad esempio, può essere utile prevedere una funziona che trasformi automaticamente le URL presenti nei contributi degli utenti in link cliccabili.

Questa la funzione:

Continua dopo la pubblicità...
function converti_in_link($testo)
{
  $testo = eregi_replace("(http|https|ftp)://([[:alnum:]/\n+-=%&:_.~?]+[#[:alnum:]+]*)","<a href=\"\\1://\\2\" target=\"_blank\">\\2</a>", $testo);
  $testo = eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})','<a href="mailto:\\1" target=_blank>\\1</a>', $testo);
  return $testo;
}

La funzione preg_replace() non fa altro che ricercare, all'interno del testo passato come parametro, una sotto-stringa le cui caratteristiche coincidano con quelle di un'URL, se la trova la sostituisce con il relativo link.

Per utilizzare la funzione:

$testo = "Ciao ti consiglio di visitare http://www.mrwebmaster.it ";
$testo .= "oppure scrivimi a webmaster@miosito.com";

// passo il testo alla funzione
echo converti_in_link($testo);

I commenti degli utenti

I commenti sono sottoposti alle linee guida di moderazione e prima di essere visibili devono essere approvati da un moderatore.