Corsi on-line

Da testo a URL clickabile in php

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

<?php
// definizione della funzione e parametri
function testo_in_url($stringa){
  // conversione tramite sostituzione con espressioni regolari
  return preg_replace("~(http|https|ftp|ftps)://(.*?)(\s|\n|[,.?!](\s|\n)|$)~", "<a href=\"$1://$2\" rel=\"nofollow\">$1://$2</a>$3", $stringa);
}
?>


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, come avviene per l’esempio seguente:

<?php
# testo da convertire
$testo = "Se siete dei webmaster potete trovare tante cose interessanti su http://blog.mrwebmaster.it - il blog ufficiale di Mr.Webmaster";
// conversione
echo testo_in_url($testo);
?>

Da notare come la funzione sia in grado di intercettare diversi formati per le URL. Consigliato, ovviamente, l’utilizzo di rel="nofollow" per evitare i commenti di spam.

Sull’argomento si veda anche questa FAQ pubblicata su Mr.Webmaster.

Post correlati
  • Ma funziona anche se uno non mette il protocollo? Scusa ma le regex proprio non ce la faccio a digerirle 🙂

    M.

I più letti del mese
Tematiche