Avatar billede yamino Nybegynder
05. august 2003 - 20:01 Der er 5 kommentarer og
1 løsning

Konvertere textlink til HTML link fra Memofelt

Hey drenge.

Så sidder jeg igen med en lille ting som jeg ikke kan få til at funke :}

Jeg søger en funktion, som omdanner tekstlinks til HTML links. Det skal have sin funktion, idet jeg trækker data ud af et memofelt fra min database, såsom et forumpost.

Jeg har prøvet nogle færdiglavede snippets, og det bedste var dette:

<%
Function LinkTekst(Tekst)
LinkTekst = ""
A_Start = 1

if InStr(Tekst, "http://") then
  do until A_Start >= len(Tekst)
  LinkChr = InStr(A_Start, Tekst, "http://")
  NextSpace = InStr(LinkChr, Tekst, " ")

  if NextSpace = 0 then NextSpace = Len(Tekst) + 1

  URL = Mid(Tekst, LinkChr, NextSpace - LinkChr)

  LinkTekst = LinkTekst & Mid(Tekst, A_Start, LinkChr - A_Start)
  LinkTekst = LinkTekst & "<b><A Target=_Blank Href=" & Chr(34) & URL & Chr(34) & Chr(32) & ">" & URL & "</b></A> "

  if Int(LinkChr) = Int(InStrRev(Tekst, "http://")) then
    LinkTekst = LinkTekst & Mid(Tekst, NextSpace, Len(Tekst) - A_Start)
    A_Start = Len(Tekst)
  else
    A_Start = NextSpace
  end if
  loop
else
  LinkTekst = Tekst
end if
End Function
%>

Problemet med denne snippet, er at hvis et link er det sidste ord i en sætning umiddelbart INDEN <br> omdanner den første ord i næste linie til at være en del af linket.

Nogen der kan hjælpe?

Yam^
Avatar billede eagleeye Praktikant
05. august 2003 - 20:19 #1
Der har været en konkurrence på www.netkoders.dk og vinder script er her:
http://www.netcoders.dk/sources.asp?mode=view_source&cat_id=9&id=859&tech_id=1

Runner ups:
http://www.netcoders.dk/sources.asp?mode=view_source&cat_id=9&id=860&tech_id=1


Jeg bruger selv denne som laver www adresse samt email adresse om til klikbare links.

Function LinkString2(strInput)
Set objRegExpHTTP1 = New RegExp
Set objRegExpHTTP2 = New RegExp
Set objRegExpEMail = New RegExp

objRegExpHTTP1.Pattern = "(http|ftp)(:\/\/[\w\._-]+\.[\w\._-]+\S*)"
objRegExpHTTP2.Pattern = "(^|[^\/])(www[^\.\s]?\.[\w\._-]+\.[A-Za-z]{2,3}[a-z0-9\.\-\/]{0,})"
objRegExpEMail.Pattern = "([\w\._-]+@[\w\._-]+\.[A-Za-z]{2,3}\S*)"

objRegExpHTTP1.Global = True
objRegExpHTTP2.Global = True
objRegExpEMail.Global = True

objRegExpHTTP1.IgnoreCase = True
objRegExpHTTP2.IgnoreCase = True
objRegExpEMail.IgnoreCase = True

strOutput = objRegExpEMail.Replace(strInput, " <a href='mailto:$1'>$1</a> ")
strOutput = objRegExpHTTP1.Replace(strOutput, "<a href='$1$2' target='_blank'>$1$2</a> ")
strOutput = objRegExpHTTP2.Replace(strOutput, " $1<a href='http://$2' target='_blank'>$2</a>")

Set objRegExpHTTP2 = Nothing
set objRegExpHTTP1 = Nothing
Set objRegExpEMail = Nothing

LinkString2 = strOutput
End Function



Eller så prøv at lave "<br>" om til vbCrLf inden du laves det om til links og så vbCrLf tilbage til "<br>" bagefter.
Avatar billede yamino Nybegynder
05. august 2003 - 20:29 #2
Bruger nu den snippet du selv bruger, men problemet er der stadig.

Check http://62.242.62.192/forum/topic.asp?TOPIC_ID=13&FORUM_ID=3
Avatar billede yamino Nybegynder
05. august 2003 - 20:31 #3
Og selve linien som udskriver dataen:

<%=LinkString2(Replace(rs("TOPIC_TEXT"), Chr(13)&Chr(10), "<br>"))%>
Avatar billede eagleeye Praktikant
05. august 2003 - 20:34 #4
Prøv med det sådan her så den først laver det om til <br> efter linke er lavet:

<%=Replace(LinkString2(rs("TOPIC_TEXT")), Chr(13)&Chr(10), "<br>")%>
Avatar billede yamino Nybegynder
05. august 2003 - 20:37 #5
Har prøvet, giver følgende:

Der opstod en Microsoft VBScript-kørselsfejl fejl '800a01c2'

Antallet af argumenter er forkert eller egenskabstildelingen er ugyldig: 'LinkString2'

/forum/topic.asp, linje 94
Avatar billede yamino Nybegynder
05. august 2003 - 20:40 #6
Amen for fanden, lige det med at huske paranteserne, haha.

Takker ydmygt for hjælpen :p
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester