"Peter" <mail@unknown.com> skrev i en meddelelse
news:46605cea$0$90273$14726298@news.sunsite.dk...
> Er der nogen som har en funktion som kan forkorte linket når det er
muligt.
> Det vil sige erstatte to eller flere skråstreger med en enkelt. Erstatte
> /./ med / og lave /mappe1/.. om til / og fjerne alt efter # i url
adressen.
>
> Men man kan dog ikke bare starte med at erstatte dobbelt / med enkelt.
Det
> vil give et forkert resultat i dette tilfælde:
>
http://minside.dk/mappe//../
>
> Som gerne skulle blive til:
>
http://minside.dk/mappe/
>
> Dette link:
>
http://www.minside.dk/mappe/./undermappe/../
>
> Skulle gerne blive til:
>
http://www.minside.dk/mappe/
>
> Er der nogen der har en funktion som kan det?
Jeg fik lavet det her stykke kode, som ser ud til at virke.
Function ValidateLink(varlink)
if left(lcase(varlink),7) = "http://" or left(lcase(varlink),8) =
"https://" then
if varlink <> "" then
ValidateLink = varlink
ValidateLink = replace(ValidateLink,"\","/")
if Instr(ValidateLink,"#") > 0 then
ValidateLink = left(ValidateLink,Instr(ValidateLink,"#")-1)
end if
ValidateLink = mid(replace(" "&ValidateLink,"/./","/"),2)
While Instr(ValidateLink,"/..") > 0
tmpValidateLink1 = left(ValidateLink,Instr(ValidateLink,"/.."))
tmpValidateLink2 = mid(ValidateLink,Instr(ValidateLink,"/..")+len("/.."))
if Instr(mid(tmpValidateLink1,9),"/") > 0 then
tmpValidateLink1 =
left(tmpValidateLink1,InstrRev(tmpValidateLink1,"/")-1)
if Instr(mid(tmpValidateLink1,9),"/") > 0 and right(tmpValidateLink1,1)
<> "" then
tmpValidateLink1 =
left(tmpValidateLink1,InstrRev(tmpValidateLink1,"/"))
end if
end if
ValidateLink = tmpValidateLink1 & tmpValidateLink2
Wend
While Instr(mid(ValidateLink,8),"//") > 0
ValidateLink = left(ValidateLink,7) & mid(replace("
"&mid(ValidateLink,8),"//","/"),2)
Wend
end if
else
ValidateLink = varlink
end if
End Function
Med venlig hilsen Peter