Jag använder en forumkod till mitt forum där www.lank.com och http://www.lank.com blir automatiskt länkar.
Men den hänger liksom upp sig, det kan bli <a href="http://<a href=" typ, går det att göra så att inte en och samma länk kollas på både http & www som start?
Eftersom http://www. innehåller www så blir den länk 2 gånger...
<%
Function make_link(txt)
' Initiering i början
txt = Replace(Server.HTMLEncode(RecSet("Inlagg")),vbCrlf,"<br>")
sPos = inStr(lCase(txt),"http://") ' Hämtar positionen för första länken
' Fyll denna array med tecken som avslutar en länk << HÄR KAN DU ÄNDRA OM DU VILL >>
stoppa = Array(";",","," ","!","<",">")
Do While sPos <> 0 AND sPos < len(txt)
' Initiering av grejer i lopen
startLink = sPos ' Länkens startpos
tmpChar = "" ' Nollställ
tmpLink = "" ' Nollställ
stop_it = "FALSE"
' Plocka ut namnet på länken
Do Until sPos > len(txt)+1 OR stop_it = "TRUE"
tmpLink = tmpLink & tmpChar
tmpChar = Mid(txt,sPos,1)
endLink = sPos - 1
sPos = sPos + 1
For X = 0 To Ubound(stoppa) ' Kollar om tmpChar är ogiltig
If tmpChar = stoppa(X) Then stop_it = "TRUE"
Next
Loop
vanster = Left(txt,startLink-1) ' Texten till vänster om länken
hoger = Right(txt,len(txt)-endLink) ' Texten till höger om länken
' Sätt ihop den nya texten, med länk!
txt = vanster & "<a href='" & tmpLink & "' target = '_blank'>"_
& tmpLink & "</a>" & hoger
' Leta fram nästa länk
jumpTo = endLink + 33 + len(tmpLink)
sPos = inStr(jumpTo,lCase(txt),"http://")
Loop
sPos = inStr(lCase(txt),"www.") ' Hämtar positionen för första länken
' Fyll denna array med tecken som avslutar en länk << HÄR KAN DU ÄNDRA OM DU VILL >>
stoppa = Array(";",","," ","!","<",">")
Do While sPos <> 0 AND sPos < len(txt)
' Initiering av grejer i lopen
startLink = sPos ' Länkens startpos
tmpChar = "" ' Nollställ
tmpLink = "" ' Nollställ
stop_it = "FALSE"
' Plocka ut namnet på länken
Do Until sPos > len(txt)+1 OR stop_it = "TRUE"
tmpLink = tmpLink & tmpChar
tmpChar = Mid(txt,sPos,1)
endLink = sPos - 1
sPos = sPos + 1
For X = 0 To Ubound(stoppa) ' Kollar om tmpChar är ogiltig
If tmpChar = stoppa(X) Then stop_it = "TRUE"
Next
Loop
vanster = Left(txt,startLink-1) ' Texten till vänster om länken
hoger = Right(txt,len(txt)-endLink) ' Texten till höger om länken
' Sätt ihop den nya texten, med länk!
IF NOT inStr(lCase(vanster),"http://") then
txt = vanster & "<a href='http://" & tmpLink & "' target = '_blank'>"_
& tmpLink & "</a>" & hoger
END IF
' Leta fram nästa länk
jumpTo = endLink + 33 + len(tmpLink)
sPos = inStr(jumpTo,lCase(txt),"www.")
Loop
' Tillåten HTML kod
txt = Replace(txt,"[farg]","<font color='red'>")
txt = Replace(txt,"[/farg]","</font>")
txt = Replace(txt,"[f]","<b>")
txt = Replace(txt,"[/f]","</b>")
txt = Replace(txt,"[k]","<i>")
txt = Replace(txt,"[/k]","</i>")
txt = Replace(txt,"[b]","<b>")
txt = Replace(txt,"[/b]","</b>")
txt = Replace(txt,"","")
make_link = txt
End Function
%>
tja du skulle kanske kunna ändra om koden så att den 2:a kollen tittar efter:
" <A HREF="http://www."" TARGET=_blank>www."</A> istället för "www.".
På så vis blir inte http://www. länkad igen.
sPos = inStr(lCase(txt)," <A HREF="http://www.")" TARGET=_blank>www.")</A> ' Hämtar positionen för första länken
sedan behöver du kanske juster lite av de efterföljande stränghanteringsfunktionerna.
------------------ En eller annan godbit från pannan