Avatar billede hostgirl Nybegynder
07. juli 2008 - 11:54 Der er 6 kommentarer og
1 løsning

Find links og gem i array

Hej

Jeg søger et asp-script der søger en streng igennem for links, hvorefter disse links skal gennem i et array.

Et eksempel illustrerer det nok bedst:

"Dette er en streng med tilfældige links, se fx <a href=""http://www.minhjemmesidesomertilældig.dk"">Min hjemmeside</a>. Strengen kan indeholde mange forskellige links som fx. <a href=""http://www.side1.dk"">side nummer 1</a>, <a href=""http://www.side2.com"">side 2</a> osv."

Efter functionen har søgt disse igennem, ønsker jeg den skal gemme følgende i et array.

arr(0) = "<a href=""http://www.minhjemmesidesomertilældig.dk"">Min hjemmeside</a>"
arr(1) = "<a href=""http://www.side1.dk"">side nummer 1</a>"
arr(2) = "<a href=""http://www.side2.com"">side 2</a>"

Håber det er til at forstå, nogen som kan give en god fremgangsmåde på dette? 

På forhånd tak
Avatar billede mortvader Nybegynder
08. juli 2008 - 08:57 #1
<%
test="Dette er en streng med tilfældige links, se fx <a href=""http://www.minhjemmesidesomertilældig.dk"">Min hjemmeside</a>. Strengen kan indeholde mange forskellige links som fx. <a href=""http://www.side1.dk"">side nummer 1</a>, <a href=""http://www.side2.com"">side 2</a> osv."

p=1
links=""
do
  start=instr(p,lcase(test),"<a href=")
  slut=instr(p+8,lcase(test),">")

  p=p+start+slut

  if start>0 and slut>0 then
    resultat=mid(test,start+8,slut-start-8)
    if left(resultat,1)="""" or left(resultat,1)="'" then resultat=right(resultat,len(resultat)-1)
    if right(resultat,1)="""" or right(resultat,1)="'" then resultat=left(resultat,len(resultat)-1)
    links=links&resultat&"~"
  end if
loop while p<len(test)

if right(links,1)="~" then links=left(links,len(links)-1)

linkarray=split(links,"~")

for t=lbound(linkarray) to ubound(linkarray)
  response.write linkarray(t)&"<br>"
next

%>
Avatar billede mortvader Nybegynder
08. juli 2008 - 10:20 #2
hov, der er jo en fejl... det er en OMMER:

<%
test="Dette er en streng med tilfældige links, se fx <a href=""http://www.minhjemmesidesomertilældig.dk"">Min hjemmeside</a>. Strengen kan indeholde mange forskellige links som fx. <a href=""http://www.side1.dk"">side nummer 1</a>, <a href=""http://www.side2.com"">side 2</a> osv. <a href=mortvader.dk>mortvader.dk</a>"

p=1
links=""
do
  start=instr(p,lcase(test),"<a href=")
  slut=instr(start+8,lcase(test),">")

  if start>0 and slut>0 then
    resultat=mid(test,start+8,slut-start-8)
    if left(resultat,1)="""" or left(resultat,1)="'" then resultat=right(resultat,len(resultat)-1)
    if right(resultat,1)="""" or right(resultat,1)="'" then resultat=left(resultat,len(resultat)-1)
    links=links&resultat&"~"
    p=slut
  end if


loop while (p<=len(test))and(start>0)and(slut>0)

if right(links,1)="~" then links=left(links,len(links)-1)

linkarray=split(links,"~")

for t=lbound(linkarray) to ubound(linkarray)
  response.write linkarray(t)&"<br>"
next

%>

Dér!
Avatar billede hostgirl Nybegynder
08. juli 2008 - 10:46 #3
mange tak, jeg tester løsningen nu...
Avatar billede hostgirl Nybegynder
08. juli 2008 - 10:56 #4
Det virker lige efter planen... mange tak. Vil du venligst ligge et svar også takker jeg for den hurtige respons.
Avatar billede mortvader Nybegynder
08. juli 2008 - 11:07 #5
Det var så lidt.

Jeg lavede den første som svar, så du kan bruge den :)
Avatar billede hostgirl Nybegynder
08. juli 2008 - 11:54 #6
ja okay, ikke sådan når der er ferie... Til andre der evt skal bruge dette kan måske lige kort tilføje følgende omkring, idet scriptet ellers opfører sig lidt "forkert" i meget uheldige situationer:

If (InStr(strLinks, "~") = 0) Then

End If
Avatar billede hostgirl Nybegynder
08. juli 2008 - 11:55 #7
hov:

If (InStr(test, "~") = 0) Then

End If
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