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.