- Home
- Categorie
- Coding e Sistemistica
- PHP
- Da testo a URL clickabile in php
-
Da testo a URL clickabile in php
ciao,
vorrei trasformare tutte le url presenti in un testo in link.www . pippo . it deve trasformarsi in
[php]
<a href="http: // www . pippo . it">www . pippo . it</a>
[/php]ho trovato questo codice in rete ma funziona solo se metto davanti http.
[php]
<?php
// definizione della funzione e parametri
function testo_in_url($stringa){
// conversione tramite sostituzione con espressioni regolarireturn preg_replace("~(http|https|ftp|ftps)://(.*?)(\s|\n|,.?!|$)~", "<a href="$1://$2" rel="nofollow">$1://$2</a>$3", $stringa);}
?>
[/php]vorrei che funzionasse sia se trovo www . pippo . it sia se trovo http: // www . pippo . itGrazie.
Saluti.
-
Ciao,
prova cosi:
[php]
function autolink($str)
{
if (preg_match_all("#(^|\s|()((http(s?)://)|(www.))(\w+[^\s)<]+)#i", $str, $matches))
{
for ($i = 0; $i < count($matches['0']); $i++)
{
$period = '';
if (preg_match("|.$|", $matches['6']))
{
$period = '.';
$matches['6'] = substr($matches['6']*, 0, -1);
}$str = str_replace($matches['0']*, $matches['1']*.'<a href="http'. $matches['4']*.'://'. $matches['5']*. $matches['6']*.'">http'. $matches['4']*.'://'. $matches['5']*. $matches['6']*.'</a>'. $period, $str); } } return $str;
}
[/php]
-
ok grazie.
ho risolto cosi:[php]
function testo_in_url($stringa){
// conversione tramite sostituzione con espressioni regolari
return preg_replace("/(www) . (.*?).(([.a-z]+))/", "<a href="http:/ /$1.$2.$3 " rel="nofollow" > $1.$2.$3 </a>", $stringa);}
[/php]
che dite va bene?