Forkort klikbar tekst i link
Hej eksperter.Jeg bruger følgende funktion til at lave automatisk links i mit debatforum. Men jeg kunne godt tænke mig at den tekst som bliver til et link kun var X antal tegn langt, hvorefter det blev erstattet af f.eks. "..." (ligesom her på eksperten.dk).
Koden er en jeg har fundet på en side (kan ikke huske hvor - måske her på eksperten), så jeg aner ikke rigtig hvad den gør hvor...
Kan nogen hjælpe?
Kode:
function text_url($str, $target, $css_class)
{
$ins_str = "";
if($css_class)
$ins_str .= " class=\"".$css_class."\"";
if($target)
$ins_str .= " target=\"".$target."\"";
$str = text_expand($str);
$str = preg_replace ("/(ftp|http|https|telnet|news|nntp|file|irc):\/\/([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+[a-z0-9~#%@&:;=!',_æøå\(\)\?\/\-\+\[\]\|\*\$\^\{\}]+)/i", "<a href=\"\\1://\\2\"".$ins_str.">\\1://\\2</a>", $str);
$str = preg_replace ("/(\s|tp\:|\(|\[|\>)(www\.)([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+[a-z0-9~#%@&:;=!'_æøå\(\)\?\/\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"http://\\2\\3\"".$ins_str.">\\2\\3</a>", $str);
$str = preg_replace ("/(\s|tp\:|\(|\[|\>)(ftp\.)([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+[a-z0-9~#%@&:;=!'_æøå\(\)\?\/\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"ftp://\\2\\3\"".$ins_str.">\\2\\3</a>", $str);
$str = preg_replace ("/([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6})/i", "<a href=\"mailto:\\1\"".$ins_str.">\\1</a>", $str);
return text_reduce($str);
}
function text_expand($str)
{
return " ".$str." ";
}
function text_reduce($str)
{
return substr($str, 1, -1);
}
print text_url($beskrivelse,"_blank",'');