Avatar billede jens Nybegynder
21. december 2000 - 23:50 Der er 17 kommentarer og
1 løsning

Smid den lokale sti ud af en image-tag

Hej


Jeg requester en form hvor der er en masse HTML i.

Der er bla. nogle image-tags der kører på en lokal sti, f.eks. <img src=\"D:/bla/bla/bla/hej.gif\">

Stien til image er forskellig hver gang!

Nu vil jeg gerne stripe alt i denne tag, sådan at der står <img src=\"hej.gif\">

Der kan være flere image-tags i den bunke HTML der sendes fra formen - og nogle gange kun een image-tag.

Nogen forslag til hvordan jeg kan få \"renset\" op i den bunke HTML ?

Hilsen
Jens
Avatar billede tdaugaard Nybegynder
21. december 2000 - 23:55 #1
Tjaa .. kan da lige prøve at lave et eksempel
Avatar billede jens Nybegynder
21. december 2000 - 23:56 #2
Min helt :-)
Avatar billede tdaugaard Nybegynder
22. december 2000 - 00:08 #3
<%
    Function FixImgPaths(strDocument)
        Index = 1
       
        Do
            Index = InStr(Index, LCase(strDocument), \"<img src=\"): If Index = 0 Then Exit Do
            EndIndex = InStr(Index, LCase(strDocument), \">\"):      If EndIndex = 0 Then Exit Do:
            Index = Index + 9
           
            strFile = Mid(strDocument, Index, EndIndex - Index)
            strFileX = Right(strFile, Len(strFile) - InStrRev(strFile, \"\\\"))
            If Right(strFileX, 1) = \"\'\" Or Right(strFileX, 1) = Chr(34) Then strFileX = Left(strFileX, Len(strFileX) - 1)
           
            strDocument = Replace(strDocument, strFile, Chr(34) & strFileX & Chr(34))
            Index = Index + 1
        Loop
       
        FixImgPaths = strDocument
    End Function
   
    strImgs = \"<img src=\'d:\\noget\\andet\\skod.gif\'><b>gjsjgjs gdf</b> YI HAAAA!!! <img src=\'c:\\det\\her\\lugter.jpg\'>\"
    Response.Write server.htmlencode( FixImgPaths(strImgs))
%>
Avatar billede tdaugaard Nybegynder
22. december 2000 - 00:09 #4
Nææ .. brug denne her istedet .. hvis der er mange stier der er ens så sparer den her dig for noget ventetid:

<%
    Function FixImgPaths(strDocument)
        Index = 1
       
        Do
            Index = InStr(Index, LCase(strDocument), \"<img src=\"): If Index = 0 Then Exit Do
            EndIndex = InStr(Index, LCase(strDocument), \">\"):      If EndIndex = 0 Then Exit Do:
            Index = Index + 9
           
            strFile = Mid(strDocument, Index, EndIndex - Index)
            If Instr(strFile, \"\\\") > 0 Then
                strFileX = Right(strFile, Len(strFile) - InStrRev(strFile, \"\\\"))
                If Right(strFileX, 1) = \"\'\" Or Right(strFileX, 1) = Chr(34) Then strFileX = Left(strFileX, Len(strFileX) - 1)
           
                strDocument = Replace(strDocument, strFile, Chr(34) & strFileX & Chr(34))
            End If
            Index = Index + 1
        Loop
       
        FixImgPaths = strDocument
    End Function
   
    strImgs = \"<img src=\'d:\\noget\\andet\\skod.gif\'><b>gjsjgjs gdf</b> YI HAAAA!!! <img src=\'c:\\det\\her\\lugter.jpg\'>\"
    Response.Write server.htmlencode( FixImgPaths(strImgs))
%>
Avatar billede tdaugaard Nybegynder
22. december 2000 - 00:11 #5
Ovenstående kode, udført vil udskrive:

<img src=\"skod.gif\"><b>gjsjgjs gdf</b> YI HAAAA!!! <img src=\"lugter.jpg\">
Avatar billede jens Nybegynder
22. december 2000 - 00:21 #6
Jeg har lige smidt lidt flere point ind.


Fordi...

Stien ser sådan her ud: <IMG align=baseline alt=\"\" border=0 hspace=0 src=\"D:\\Inetpub\\wwwroot\\verdenmesterskab\\new\\profiler\\anders.jpg\">

Eller sådan her:

.<IMG align=right alt=\"Jeanne vandt bronze\" border=2 hspace=3 src=\"D:\\Inetpub\\wwwroot\\verdenmesterskab\\new\\profiler\\jeanne.jpg\" vspace=3>

Mig der sov, undskylder :-(

det som man så skulle frem til var f.eks.

.<IMG align=right alt=\"Jeanne vandt bronze\" border=2 hspace=3 src=\"jeanne.jpg\" vspace=3>

Avatar billede tdaugaard Nybegynder
22. december 2000 - 00:23 #7
*G* okai .. det var måske en nødvendig oplysning ..
Avatar billede tdaugaard Nybegynder
22. december 2000 - 00:24 #8
<%
    Function FixImgPaths(strDocument)
        Index = 1
       
        Do
            Index = InStr(Index, LCase(strDocument), \"src=\"): If Index = 0 Then Exit Do
            EndIndex = InStr(Index, LCase(strDocument), \">\"):      If EndIndex = 0 Then Exit Do:
            Index = Index + 4
           
            strFile = Mid(strDocument, Index, EndIndex - Index)
            If Instr(strFile, \"\\\") > 0 Then
                strFileX = Right(strFile, Len(strFile) - InStrRev(strFile, \"\\\"))
                If Right(strFileX, 1) = \"\'\" Or Right(strFileX, 1) = Chr(34) Then
                    strChar = Right(strFileX, 1)
                    strFileX = Left(strFileX, Len(strFileX) - 1)
                End If
                   
                strDocument = Replace(strDocument, strFile, strChar & strFileX & strChar)
            End If
            Index = Index + 1
        Loop
       
        FixImgPaths = strDocument
    End Function
   
    strImgs = \"<img src=\'d:\\noget\\andet\\skod.gif\'><b>gjsjgjs gdf</b> YI HAAAA!!! <img src=\'c:\\det\\her\\lugter.jpg\'>\"
    Response.Write server.htmlencode( FixImgPaths(strImgs))
%>
Avatar billede jens Nybegynder
22. december 2000 - 00:24 #9
ja, jeg sidder sgu også her og har røde øre - Rudolf har faktisk ikke en chance lige nu...
Avatar billede tdaugaard Nybegynder
22. december 2000 - 00:25 #10
Det var det ;-) Tror jeg .. tester forøvrigt lige ..
Avatar billede tdaugaard Nybegynder
22. december 2000 - 00:26 #11
ha ha .. et sker .. ;-)
Avatar billede tdaugaard Nybegynder
22. december 2000 - 00:27 #12
Der er lige en mindre fejl i, men den fixer jeg lige ..
Avatar billede jens Nybegynder
22. december 2000 - 00:32 #13
ok, så henter jeg lige kaffe imens ;-)
Avatar billede tdaugaard Nybegynder
22. december 2000 - 00:36 #14
Det var så det. Nu er den lavet så den finder

\"src=\" og finder næste \", \' eller mellemrum (\" \") og tager derfra. På den måde kan src= værdien være midt i <img> tagget, starten eller slutningen
<%
    Function FixImgPaths(strDocument)
        Index = 1
       
        Do
            Index = InStr(Index, LCase(strDocument), \"src=\"): If Index = 0 Then Exit Do
            Index = Index + 4
            EndIndex = InStr(Index + 1, LCase(strDocument), Chr(34))
            If EndIndex = 0 Then EndIndex = InStr(Index + 1, LCase(strDocument), \"\'\")
            If EndIndex = 0 Then EndIndex = InStr(Index + 1, LCase(strDocument), \" \")
            If EndIndex = 0 Then Exit Do
           
            strFile = Mid(strDocument, Index, (EndIndex - Index) + 1)
           
            If Instr(strFile, \"\\\") > 0 Then
                strFileX = Right(strFile, Len(strFile) - InStrRev(strFile, \"\\\"))
                If Right(strFileX, 1) = \"\'\" Or Right(strFileX, 1) = Chr(34) Then
                    strChar = Right(strFileX, 1)
                    strFileX = Left(strFileX, Len(strFileX) - 1)
                End If
                   
                strDocument = Replace(strDocument, strFile, strChar & strFileX & strChar)
            End If
            Index = Index + 1
        Loop
       
        FixImgPaths = strDocument
    End Function
   
    strImgs = \"<IMG align=right alt=\'Jeanne vandt bronze\' border=2 hspace=3 src=\'D:\\Inetpub\\wwwroot\\verdenmesterskab\\new\\profiler\\jeanne.jpg\' vspace=3> <b>gjsjgjs gdf</b> YI HAAAA!!! <img src=\'c:\\det\\her\\lugter.jpg\'>\"
    Response.Write FixImgPaths(strImgs)
%>
Avatar billede jens Nybegynder
22. december 2000 - 00:46 #15
Det virker perfekto - STOR TAK til dig tdaugaard

For fedt :-)
Avatar billede tdaugaard Nybegynder
22. december 2000 - 00:48 #16
Se\'følig gør det det ;o)
Det var så lidt, altid rart at se folk sætter pris på min hjælp.
Avatar billede jens Nybegynder
22. december 2000 - 00:54 #17
hehe, selvfølgelig ;-)

nå, er det ikke sengetid ?? - godnat, kaffen hjalp ikke denne gang...
Avatar billede tdaugaard Nybegynder
22. december 2000 - 00:57 #18
Naa ... jeg sidder nogle timer endnu .. hvis ikke hele natten ;-) (har 2,5 cola her så deeet )
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