URL che diventa link nel textarea

Quando l'utente scrive un url nel mio textarea e va a video, non appare come link, come faccio a rendere l'url cliccabile?

inviato 9 anni fa
php
php
6
X 0 X
http://it.php.net/manual/en/function.preg-match-all.php#76790

Ho messo cosi alla lettera ma non si linca

$messaggio = preg_replace( '/(http|ftp)+(s)?:(\/\/)((\w|\.)+)(\/)?(\S+)?/i','<a href="\0">\4</a>', $messaggio );
risposto 9 anni fa
php
php
6
X 0 X

Piu di cosi non riesco, ora funziona solo con http:// mi manca www. e l'email poi a posto :lamo:

$messaggio = preg_replace('/((http(s)?:\/\/))((\w|\.)+)(\/)?(\S+)?/i','<a href="\0">\0</a>', $messaggio);
risposto 9 anni fa
php
php
6
X 0 X
risposto 9 anni fa
Xscratch
X 0 X

prova questi

http://regexlib.com/Search.aspx?k=url

Non ho trovato l'autolink

risposto 9 anni fa
php
php
6
X 0 X

non devi cercare autolink!

dovevi cercare l'espressione regolare per trovare gli url, poi la funzione preg_replace che si arrangia a creare l'autolink...

cmq forse ho trovato l'errore:

$messaggio = preg_replace('/((http(s)?:\/\/))((\w|\.)+)(\/)?(\S+)?/i','<a href="\1">\1</a>', $messaggio);

prova adesso

risposto 9 anni fa
Xscratch
X 0 X

non devi cercare autolink!

dovevi cercare l'espressione regolare per trovare gli url, poi la funzione preg_replace che si arrangia a creare l'autolink...

cmq forse ho trovato l'errore:

$messaggio = preg_replace('/((http(s)?:\/\/))((\w|\.)+)(\/)?(\S+)?/i','<a href="\1">\1</a>', $messaggio);

prova adesso

Cosi peggio, con 1 si autolinca solo http:// mentre come prima "0" si autolincava tutto l'url tranne www. e l'email

risposto 9 anni fa
php
php
6
X 0 X

Diciamo che con l'url ho risolto, mi manca il codice per l'email

//Se nel textarea si scrive un'url lo rende linkabile automaticamente
$messaggio = preg_replace('/((http(s)?:\/\/)|(www\\.))((\w|\.)+)(\/)?(\S+)?/i','<a href="\0">\0</a>', $messaggio);
$messaggio = str_replace("www.","http://www.",$messaggio);
$messaggio = str_replace("http://http://","http://",$messaggio);
risposto 9 anni fa
php
php
6
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda