Avatar billede goose Nybegynder
25. marts 2008 - 23:04 Der er 6 kommentarer og
1 løsning

Find ord i streng

Jeg har nogle URL'er som kan se forskellige ud (se længere nede), men uanset hvordan de ser ud, så skal jeg finde det ord der i nedenstående er angivet med MAPPENAVN

URL typer:

1: http://www.domain.dk/MAPPENAVN
2: http://www.domain.dk/MAPPENAVN/
3: http://www.domain.dk/MAPPENAVN/default.asp
4: http://www.domain.dk/MAPPENAVN/default.asp?svar=go

Jeg har rodet med følgende, men den virker kun rigtigt med eksempel 1:

theURLAddr = Request.ServerVariables("Query_String")
strAddr = right(theUrlAddr, InStrRev(theUrlAddr,"/")-1)
index = inStrRev(strAddr,"/")
if index > 0 then strAddr = Mid(strAddr, index+1)
mappenavn = Mid(strAddr,1)

/Goose
Avatar billede softspot Forsker
25. marts 2008 - 23:16 #1
Hvad er det du vil opnå (kan du give nogle forventede resultater for de enkelte adresser du har vist)?
Avatar billede softspot Forsker
25. marts 2008 - 23:19 #2
Når du skriver du skal finde det ord som er angivet ved MAPPENAVN, er det så ordet på den position i url'en eller er det et bestemt ord i url'en. Det der forvirrer mig lidt er, at du tager udgangspunkt i query_string, som vel umiddelbart er det der ligger efter spørgsmålstegnet i adressen (hvilket vel er det mindst interessante i denne sammenhæng?)...
Avatar billede softspot Forsker
25. marts 2008 - 23:21 #3
Du kan evt. lure lidt på resultatet af den side som denne kode genererer når den køres i din browser (fra localhost f.eks.):

<%
for each fld in request.servervariables
  response.write fld & " = " & request.servervariables(fld) & "<br>"
next
%>

du kan her evt. finde en servervariabel som passer bedre til dine behov...
Avatar billede goose Nybegynder
26. marts 2008 - 08:16 #4
Det er altid det ord der kommer lige efter ".dk/" jeg skal have fat i, men som i kan se, så kan strengen efter ".dk/" have forskellig udformning.

Jeg skal bruge det til, at finde den forekomst i en database hvor filnavn = MAPPENAVN

Hjalp denne forklaring?

/Goose
Avatar billede softspot Forsker
26. marts 2008 - 08:40 #5
Kan du så ikke bare bruge

url = Request.ServerVariables("PATH_INFO") & ""
if len(url) > 1 then url = mid(url,2)
if instr(url, "/") > 0 then
  mappenavn = left(url,instr(url,"/")-1)
else
  mappenavn = url
end if
Avatar billede goose Nybegynder
26. marts 2008 - 08:57 #6
Nej, det funker ikke rigtigt.

Det som det helt præcist skal bruges til er, at hvis en mappe bliver omdøbt i mit system, så bliver både det gamle mappenavn og det nye mappenavn gemt i en database.

Hvis så den gamle mappe, som ikke findes længere, bliver kaldt, så bliver man sendt videre til en 404 side, altså en fejlside. På denne side skal jeg så have filtreret det MAPPENAVN ud som oprindeligt blev kaldt, så jeg kan slå op i databasen for at se om det evt. skulle være blevet omdøbt, hvorefter jeg så laver en redirect til det nye MAPPENAVN såfremt den er omdøbt.

Min kode som jeg startede med virker fint til dette, såfremt min URL præcist er http://www.domain.dk/MAPPENAVN/ men ikke hvis f.eks. den sidste slash mangler.

/Goose
Avatar billede goose Nybegynder
29. marts 2008 - 13:17 #7
Nå, jeg fik selv bakset en løsning sammen som opfylder mine kriterier, så jeg lukker her igen.

<%
theURL = "http://www.test.dk/"
' ****** CHECK OM URL INDERHOLDER .ASP ELLER ? ******
if instr(theURL, ".asp") > 0 or instr(theURL, "?") > 0 then
' ** STRENGEN INDEHOLDER .ASP ELLER ? **
strAddresse = Left(theURL, InStrRev(theURL,"/")-1)
index = inStrRev(strAddresse,"/")
if index > 0 then strAddresse = Mid(strAddresse, index+1)
mappenavn = Mid(strAddresse,1)
else
' ** STRENGEN INDEHOLDER IKKE .ASP ELLER ? **
' ** CHECK OM SIDSTE KARAKTER = / **
if right((theURL),1) = "/" then
strAddresse = Left(theURL, InStrRev(theURL,"/")-1)
index = inStrRev(strAddresse,"/")
if index > 0 then strAddresse = Mid(strAddresse, index+1)
mappenavn = Mid(strAddresse,1)
else
theURL2 = theURL & "/"
strAddresse = Left(theURL2, InStrRev(theURL2,"/")-1)
index = inStrRev(strAddresse,"/")
if index > 0 then strAddresse = Mid(strAddresse, index+1)
mappenavn = Mid(strAddresse,1)
end if
end if
%>

/Goose
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