Avatar billede cht Nybegynder
21. februar 2002 - 11:44 Der er 2 løsninger

Erstatning af links

Findes der en smart måde at erstatte links på:

jeg har prøvet med følgende:
tekst = Replace(tekst,"href='","href='http://cht.dk/visside.asp?side=",1,-1,1)

tekst = Replace(tekst,"href=""","href=""http://cht.dk/visside.asp?side=",1,-1,1)

tekst = Replace(tekst,"href=,"href=http://cht.dk/visside.asp?side=",1,-1,1)


Men det virker ikke helt optimalt, hvis linket indeholder f.eks. indeholder tegnet &, = eller ?

Findes der en løsning på det?
Avatar billede keysersoze Ekspert
21. februar 2002 - 12:19 #1
på activeserverpages.dk og netcoders.dk findes der et par enkelte link-replace-scripts... prøv at kig på dem
Avatar billede cht Nybegynder
21. februar 2002 - 21:09 #2
Det så ikke ud til at der var noget af det der kunne bruges, så jeg lavede min egen kode og nu virker det bare perfekt!

Her er koden jeg kom frem til:
<%
Set fso = CreateObject("Scripting.FileSystemObject")

Set Txt = fso.OpenTextFile( Server.Mappath("minfil.html"),1)
mytext = Txt.ReadAll
Txt.Close

While Instr(lcase(mytext),"href=") > 0

startpos = Instr(lcase(mytext),"href=")

if mid(mytext,startpos+len("href="),1) = """" then
    linkendpos = Instr( mid(mytext,startpos+len("href=")+1),"""")-1

    link = mid(mytext,startpos+len("href=")+1,linkendpos)

    if lcase(left(link,len("http://"))) <> "http://" then
        link = link_base_href & link
    end if

    link = addbeforelink & Server.URLEncode(link)

    beforetext = left(mytext,startpos+len("href="))
    aftertext = mid(mytext,startpos+len("href=")+1+linkendpos)

elseif mid(mytext,startpos+len("href="),1) = "'" then
    linkendpos = Instr( mid(mytext,startpos+len("href=")+1),"'")-1

    link = mid(mytext,startpos+len("href=")+1,linkendpos)

    if lcase(left(link,len("http://"))) <> "http://" then
        link = link_base_href & link
    end if

    link = addbeforelink & Server.URLEncode(link)


    beforetext = left(mytext,startpos+len("href="))
    aftertext = mid(mytext,startpos+len("href=")+1+linkendpos)

else
    linkendpos = Instr( mid(mytext,startpos+len("href=")),">")-1

    link = mid(mytext,startpos+len("href="),linkendpos)

    if lcase(left(link,len("http://"))) <> "http://" then
        link = link_base_href & link
    end if

    link = addbeforelink & Server.URLEncode(link)

    beforetext = left(mytext,startpos+len("href=")-1)
    aftertext = mid(mytext,startpos+len("href=")+linkendpos)
end if

response.write beforetext & link

'response.write EncToHTML(beforetext) & "<br>|"
'response.write EncToHTML(link) & "<br>|"

mytext = aftertext

Wend

response.write aftertext
%>

Mvh. Christoffer Thygesen

e-mail: cht@cht.dk
homepage: http://cht.dk
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