PHP: riconoscere URL in un testo e convertirlo in link

di Marcello Vitagliano - 10 marzo 2011, 10:50 [Categoria: Programmazione]


Con questa funzione sarà possibile riconoscere un URL all'interno di una stringa e convertilo automaticamente in un link (tag href).

Codice
function LinkUrl($testo) {
$cerca = '/([(http|https|ftp)]+:\/\/[\w-?&:;#!~=\.\/\@]+[\w\/])/i';
$sostituisci = '<a href="$1">$1</a>';
return preg_replace($cerca, $sostituisci, $testo);
}
echo LinkUrl("http://www.ubuntu.com");


E con la seguente funzione sarà possibile riconoscere un indirizzo email e convertirlo in un link mailto.

Codice
function LinkMail($testo) {
$cerca = '/([\w\._-]+@(([\w_-])+\.)+[a-zA-Z]{2,4})/i';
$sostituisci = '<a href="mailto:$1">$1</a>';
return preg_replace($cerca, $sostituisci, $testo);
}
echo LinkMail("nome.cognome@email.tld");

Condividi: facebook twitter google+ linkedin reddit su
Archivio Cerca Stampa PDF RSS Letture 6.070 ©



Commenti (2) Inserisci un commento


Nelle regex spesso si usano i gruppi cioè parti di espressioni racchiuse tra parentesi tonde.
Quando esse sono applicate il risultato restituito viene memorizzato in variabili come $1, $2 etc. ed è possibile poi stamparle in seguito.


di Marcello Vitagliano - 14 settembre 2013, 10:04

Grazie per la dritta..però non ho capito una cosa (studio il php solo da ieri) da dove viene $1? È una variabile, no? Ma non capisco da dove viene...
E in $sostituisci viene messo come testo del link $1 quindi il risultato sarà $1 e non il valore di $1...


di Gersey - 13 settembre 2013, 20:44

[1]

Inserisci un commento Nome (obbligatorio) Email (obbligatorio, non sarà pubblicata) Sito Web
Antispam: fai la somma dei numeri
1 V a 2 i 3