PHP: trasformare i link testuali in link HTML

Trasformare link testuali in link HTML è uno dei compiti più richiesti durante lo sviluppo di siti web che permettono agli utenti di inserire contenuti. PHP può sfruttare le espressioni regolari di tipo PCRE (Perl-Compatible Regular Expressions) per questo compito. Vediamo come.

Possiamo creare la seguente funzione di utility:


function linkify($text)
{
	$regexUrl = '/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/';


	if(preg_match($regexUrl, $text, $url)) {

       
           return preg_replace($regexUrl, '<a href="{$url[0]}">{$url[0]}</a>', $text);

	} else {

     
           return $text;

	}
}

La funzione individua i link testuali e li trasforma in link HTML se questi sono presenti. In caso contrario restituisce la stringa inalterata.