> > Jeg er lidt ny indenfor det her asp og kunne godt tænke mig at få lidt
> > orden på nogen links i en database og få slettet de links der er der
> > flere gangne, men som er skevet på forskellige måder. For eksempel
> > er følgende links til samme side:
> >
> >
http://www.minside.dk/home/images/../image1.gif
> >
http://www.minside.dk/home/image1.gif
> >
http://www.minside.dk/home//image1.gif
> >
http://www.minside.dk/home/include/../images/..//image1.gif
> >
> > Det vil sige at dobbelt // skal slettes og det skal være den direkte sti
> til
> > filen uden brug af ../
> >
> > Hvordan kan man gøre det med at få fjernet ../ på den rigtige måde?
Jeg har opdateret den en anelse:
Function ValidateLink(strlink)
'13:20 03-08-2005 -> 15:21 04-08-2005
'NB. strlink ændres
'denne funktion virker kun med links der starter med
http:// og er angivet
med domainnavn og evt. underside
'For at spare plads i databasen forkortes linkene til maks 255 tegn
tmplink = left(strlink,255)
if Instr(tmplink,"//") > 0 or Instr(tmplink,"/..") > 0 then
if left(lcase(tmplink),7) = "http://" then tmplink = mid(tmplink,8)
'der er nu rettet så der er taget højde for at der kan bruges // efter ? i
url, der ændres ikke i det der står efter ? i linket
tmplink_split2 = ""
if Instr(tmplink,"?") > 0 then
tmplink_split2 = mid(tmplink,Instr(tmplink,"?"))
tmplink = left(tmplink,Instr(tmplink&"?","?")-1)
end if
tmplink = mid(replace(" "&tmplink,"\","/"),2)
While Instr(tmplink,"//") > 0
tmplink = mid(replace(" "&tmplink,"//","/"),2)
Wend
domainname = left(tmplink,Instr(tmplink&"/","/")-1)
tmplink = mid(tmplink,Instr(tmplink,"/")+1)
While Instr(tmplink,"/..") > 0 and Instr(tmplink,"/..") >
Instr(tmplink,"?")
tmplink_start = left(tmplink,Instr(tmplink,"/..")-1)
if left(tmplink_start,1) <> "/" then tmplink_start = "/" & tmplink_start
if Instr(tmplink_start,"/") > 0 then tmplink_start =
left(tmplink_start,InstrRev(tmplink_start,"/")-1)
tmplink_slut = mid(tmplink,Instr(tmplink,"/..")+3)
if left(tmplink_slut,1) <> "/" then tmplink_slut = "/" & tmplink_slut
tmplink = tmplink_start & tmplink_slut
Wend
tmplink = mid(replace(" "&tmplink,"/.",""),2)
if left(tmplink,1) <> "/" then tmplink = "/" & tmplink
tmplink = "http://" & domainname & tmplink & tmplink_split2
end if
strlink = tmplink
ValidateLink = tmplink
End Function
Mvh. Anders Jensen