/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Validering af links
Fra : Peter


Dato : 01-06-07 18:53

Hej

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?

Med venlig hilsen Peter



 
 
Peter (03-06-2007)
Kommentar
Fra : Peter


Dato : 03-06-07 09:14

"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



Peter (03-06-2007)
Kommentar
Fra : Peter


Dato : 03-06-07 20:42

"Peter" <mail@unknown.com> skrev i en meddelelse
news:46627848$0$90268$14726298@news.sunsite.dk...
> "Peter" <mail@unknown.com> skrev i en meddelelse
> news:46605cea$0$90273$14726298@news.sunsite.dk...
>
> <kode>
>
> Med venlig hilsen Peter
>

Der skulle lige en lille ændring til, da der gerne må være // i
url-adressen hvis det står efter ?, det fik jeg løst sådan her:

While Instr(mid(ValidateLink,8),"//") > 0 and
Instr(mid(ValidateLink,8),"//") < Instr(mid(ValidateLink,8),"?")
ValidateLink = replace(ValidateLink,"//","/",8,1)
Wend

Med venlig hilsen Peter



Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409081
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste