Script php: Riconoscere url in un testo e trasformarli in link
difficoltà:

Script simili
3/4/2007
Con questa funzione php potremo, passando come parametro una stringa, restituire la stessa con gli url trasformati in link. Questo attraverso l'uso delle espressioni regolari e della funzione preg_replace.
function urlreplace($str){
$str = preg_replace ('(([:/~a-zA-Z0-9_\-\.]+)\.([:/~a-zA-Z0-9]+))', '<a target=\'_blank\' href=\'http://$1.$2\'>$1.$2</a>', $str);
return str_replace("http://http://","http://",$str);
}
La funzione sostituisce url del tipo:http://www.sito.it/
http://sito.it/
http://demo.sito.it/
www.sito.it/
con o senza slash finale.
Social:
Donazione:
Permalink:
Tag:
Script Simili:
Script javascript: Preview di testo digitato in textarea
Script javascript: Onclick e link accessibili con javascript disattivato
Script php: Controllo validità url di video youtube ed estrazione codice video
Script javascript: Controllo validità url di video youtube
Permalink:
Link utili:
Vota:
Commenti
21/10/2007 0:39:32
ciao a tutti, come si puo fare xchè i link a immagini non vengano trasformati in cliccabili
http://www.sito.it/img/immagine1.gif
http://www.sito.it/img/immagine1.png
http://www.sito.it/img/immagine1.jpg
1/12/2007 3:22:27
ho riscontrato degli errori in caso di pagine di questo tipo
www.indirizzo.com/index.php?action=no
il codice tronca il collegamento all'altezza del punto interrogativo
inoltre in casi come questo:
.http://www.indirizzo.com
lo script creerà url del tipo
http://.http://www.indirizzo.com
10/9/2008 16:17:29
infatti come si potrebbe far in modo di visualizzare i link solo partendo dal www. ?
3/3/2010 15:30:47
Ottimo, aggiungo:
$msg = preg_replace ('(([:/~a-zA-Z0-9_\-\.]+)\.([:/~a-zA-Z0-9/?_=]+))', '<a target=\'_blank\' href=\'http://$1.$2$3\'>$1.$2$3</a>', $msg);
$msg = str_replace("http://http://","http://",$msg);
echo "$msg";
così se inserisci un url completo di sitticategorie, lo script va.
Vorrei aggiungere, che non so fare...
ma se nel testo ho anche una mail e voglio inserire il mailto?
grazie ciao
13/3/2011 20:24:35
Io ho trovato questa:
$testo = preg_replace('/\b(\S+@\S+)\b/',
'<a href="mailto:\1";>\1</a>', $testo);
Funziona bene...

Feed Rss
27/5/2007 18:40:02
Ottimo script, con un leggera modifica l'ho utilizzato nel mio sito per censurare nei testi gli indirizzi