problemer med funktion der automatisk linker URL'er i en tekst
jeg har følgende to funktioner som finder URL'er i en tekst, og automatisk omdanner dem til et HTML link:www.google.com
BLIVER TIL
<a href="www.google.com</a>" target="_blank">http://www.google.com">www.google.com</a>
mit problem er at det går helt galt hvis jeg fodrer funktionerne med en tekst der allerede indeholder en linket url:
<a href="www.google.com</a>" target="_blank">http://www.google.com">www.google.com</a>
BLIVER TIL
<a href="<a href="www.google.com</a>"" target="_blank">http://www.google.com">www.google.com</a>" <a href="<a href="www.google.com</a>">www.google.com<a/>target="_blank">www.google.com<a/>" target="_blank">http://www.google.com">www.google.com</a>">www.google.com<a/>target="_blank">www.google.com<a/>
Her er de 2 funktioner (jeg kalder kun den 2., således: formaText('tralala www.google.com tralala'); )
function url_parse($a, $b)
{
$txt = $b;
if(!strstr($b,'://'))
$url = 'http://'.$b;
else
$url = $b;
return $a.'<a href="'.$url.'" target="_blank">'.$txt. '</a>';
}
function formaText($text)
{
$text = preg_replace('#([^\w=/@\]]|^)((?:www\.[\w-]+\.[\w-]+?\S*?)|(?:[a-z]{3,6}://\S+?))(?=[^a-z0-9/]*?(?:[\s<\][]|(?:&(?:quot|lt|gt);)|$))#ie', 'url_parse("$1", "$2")', $text);
return $text;
}
Jeg har ikke selv skrevet funktionerne, og er ikke ret god til Regular Expressions. Er der nogen der kan komme med forslag til hvordan jeg får funktionerne til at ignorere URL'er der allerede er linket? =)
mvh - foxwell
