Det har jeg nu prøvet, men linket ser stadig sådan ud hvis man ser det som html:
Dette er en tekst, hvor jeg gerne vil linke til <a href="
http://www.dr.dk." class="default" target="_blank">
www.dr.dk.</a> Men jeg kunne også godt tænke mig en is.
Jeg ville jo godt have at det så sådan ud:
Dette er en tekst, hvor jeg gerne vil linke til <a href="
http://www.dr.dk" class="default" target="_blank">
www.dr.dk</a>. Men jeg kunne også godt tænke mig en is.
Min kode ser sådan ud:
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);
return text_reduce($str);
}
function text_expand($str)
{
return " ".$str." ";
}
function text_reduce($str)
{
return substr($str, 1, -1);
}