11. november 2003 - 11:49Der 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?
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 %>
Resultatet af ovenstående er at første billedelink fjernes, men det andet bliver stående.
Synes godt om
Slettet bruger
11. november 2003 - 13:49#5
hvad med en do while løkke, som evaluerer på while Instr(str,"<img src=") > 0 ?
Synes godt om
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
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.
Synes godt om
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
Synes godt om
Slettet bruger
11. november 2003 - 14:18#9
betingelsen er kun > 0 sålænge <img src= indgår i strengen
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
Synes godt om
Slettet bruger
11. november 2003 - 14:40#11
selvtak
Synes godt om
Ny brugerNybegynder
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.