Avatar billede svjensen Nybegynder
11. november 2003 - 11:49 Der er 10 kommentarer og
1 løsning

Visning af en del af en databasepost, men ikke et billede.

Jeg har et nyhedssystem, som henter nyhederne fra en MySQL database. I nyhederne kan der være billedlinks.

På min forside viser jeg kun den første del af nyheden (fx 150 karakterer), som en slags teaser med et link til hele nyheden. Men jeg ønsker at undgå at teaseren kan indeholde billedet. Kan jeg det?

Kan I forstå hvad jeg mener?
Avatar billede Slettet bruger
11. november 2003 - 12:42 #1
Hvis du lægger dit rs ud i et array kan du bruge denne

tmp = liste(ubound(liste))
iStart = inStr(1,tilbageTil,"img src=""")
iSlut = inStr(iStart+6,tmp,"""")
if iStart > 0 AND iSlut > 0 then
  tilbageTil = Mid(tmp, iStart+6, iSlut-iStart-6)
end if

response.write tmp
Avatar billede Slettet bruger
11. november 2003 - 12:49 #2
ah forget it, men se engang på http://www.eksperten.dk/spm/421473
Avatar billede svjensen Nybegynder
11. november 2003 - 13:44 #3
OK, jeg har med udgangspunkt i din reference lavet en funktion der fjerne første billedelink. Men jeg kan ikke gennemskue, hvordan jeg kan løber resten af strengen igennem for at fjerne eventuelle yderligere billedelinks.

Her er min funktion:

<%
Function FjernBilledlink(str)
    iStart = inStr(1,str,"<img")
    iSlut = inStr(iStart+4,str,">")
    if iStart > 0 AND iSlut > 0 then
        str = Mid(str, 1, iStart-1) & Mid(str, iSlut+1, (Len(str)-iSlut))
    end if

    FjernBilledlink = str
End Function

str = "Her er noget tekst, og så kommer der et billedlink <img src='pics/121954.jpg'>,"
str = str & " hvorefter <a href=''>link</a> teksten <img src='pics/121954.jpg'> fortsætter."
response.write str & "<br><br>"
str = FjernBilledlink(str)
response.write str
%>
Avatar billede svjensen Nybegynder
11. november 2003 - 13:46 #4
Resultatet af ovenstående er at første billedelink fjernes, men det andet bliver stående.
Avatar billede Slettet bruger
11. november 2003 - 13:49 #5
hvad med en do while løkke, som evaluerer på while Instr(str,"<img src=") > 0 ?
Avatar billede Slettet bruger
11. november 2003 - 13:53 #6
Function FjernBilledlink(str)
do while Instr(str,"<img src=") > 0
    iStart = inStr(1,str,"<img")
    iSlut = inStr(iStart+4,str,">")
    if iStart > 0 AND iSlut > 0 then
        str = Mid(str, 1, iStart-1) & Mid(str, iSlut+1, (Len(str)-iSlut))
    end if
loop
    FjernBilledlink = str
End Function
Avatar billede svjensen Nybegynder
11. november 2003 - 14:06 #7
Jeg syntes at kunne se flere problemer i dit forslag:
1. Giver det ikke et uendeligt loop? (da betingelsen altid er større end 0, hvis der er bare et link)
2. Der er nødt til at ske et eller andet med opbygningen af tekststrengen. I eksemplet ovenfor bliver kun det sidste billedelink sorteret fra.
Avatar billede Slettet bruger
11. november 2003 - 14:17 #8
den virker da fint nok her hos mig

Function FjernBilledlink(str)
do while Instr(str,"<img src=") > 0
    iStart = inStr(1,str,"<img")
    iSlut = inStr(iStart+4,str,">")
    if iStart > 0 AND iSlut > 0 then
        str = Mid(str, 1, iStart-1) & Mid(str, iSlut+1, (Len(str)-iSlut))
    end if
loop
    FjernBilledlink = str
End Function

str = "Her er noget tekst, og så kommer der et billedlink <img src='pics/121954.jpg'>,"
str = str & " hvorefter <a href=''>link</a> teksten <img src='pics/121954.jpg'> fortsætter."
response.write str & "<br><br>"
str = FjernBilledlink(str)
response.write "Funktionen udført<br>" & str
Avatar billede Slettet bruger
11. november 2003 - 14:18 #9
betingelsen er kun > 0 sålænge <img src= indgår i strengen
Avatar billede svjensen Nybegynder
11. november 2003 - 14:38 #10
Nu virker den også her. Jeg havde fået blandet lidt sammen.
Jeg har dog lige ændret betingelsen i 'do while' til:
do while Instr(str,"<img") > 0

Da 'src' ikke nødvendig vis kommer som første parameter i linket.

Tak for hjælpen
Avatar billede Slettet bruger
11. november 2003 - 14:40 #11
selvtak
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