Avatar billede nythjem Nybegynder
25. juni 2004 - 12:54 Der er 7 kommentarer og
1 løsning

Replace al html?

Hejsa!

Jeg har et cms system, hvor jeg har lavet en søgeside. Problemet er jo bare, at al teksten "alt andet lige" bliver lagt i databasen med htmltags. Men det ser jo knap så heldigt ud i søgningen :)

Jeg har prøvet at trække resultaterne ud med htmlencode, men hvorfor er det lige, at tags som STRIKE STRONG osv ikke bliver fjernet?

Noget jeg eventuelt gør forkert?

<% Dim strTekst
strTekst=Record("html")
strTekst = server.htmlencode(strTekst)
%>
Avatar billede powernodes Nybegynder
25. juni 2004 - 13:05 #1
Du skal jo netop IKKE html encode...

<%= Server.HTMLEncode("Dette tag: <p>") %>
bliver til
Dette tag: &lt;p&gt

;)
Avatar billede goose Nybegynder
25. juni 2004 - 13:06 #2
Lav først en funktion:

<%
Function ReplaceTest(tekst,patrn, replStr)
  Dim regEx, str1
  Set regEx = New RegExp
  regEx.Pattern = patrn
  regEx.global = true
  regEx.IgnoreCase = True
  ReplaceTest = regEx.Replace(tekst, replStr)
End Function
%>

Fjern så alle tags fra teksten:

<%
strTekst = record("html")
udenHTML = ReplaceTest(strTekst,"(<[^><]*>)"," ")
response.write udenHTML
%>

/Goose
Avatar billede nythjem Nybegynder
25. juni 2004 - 13:19 #3
Goose..

Jeg kan ikke helt få dit til at virke :(

Syntax error

/test.asp, line 20

Function ReplaceTest(tekst,patrn, replStr)
^
Avatar billede goose Nybegynder
25. juni 2004 - 13:23 #4
hmm, det virker da fint her hos mig ............

Hvordan ser dit script ud ?

/Goose
Avatar billede nythjem Nybegynder
25. juni 2004 - 13:34 #5
Sådan her :)

<%
Response.Buffer = True

Set Con = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("../database/afront.mdb")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

Sql = "SELECT * FROM menuopsaetning"
Set Record =  Con.Execute(Sql)

%>

<% Do while Not Record.EOF %>


<b><%= Record("link") %></b><br>

<%
Function ReplaceTest(tekst,patrn, replStr)
  Dim regEx, str1
  Set regEx = New RegExp
  regEx.Pattern = patrn
  regEx.global = true
  regEx.IgnoreCase = True
  ReplaceTest = regEx.Replace(tekst, replStr)
End Function
%>

<%
strTekst = record("html")
udenHTML = ReplaceTest(strTekst,"(<[^><]*>)"," ")
response.write udenHTML
%>

<br><br>

<%
Record.MoveNext
Loop
%>

<%
Con.Close
Set Con = Nothing
%>
Avatar billede goose Nybegynder
25. juni 2004 - 13:37 #6
hmm, prøv lige:

<%
Response.Buffer = True

Function ReplaceTest(tekst,patrn, replStr)
  Dim regEx, str1
  Set regEx = New RegExp
  regEx.Pattern = patrn
  regEx.global = true
  regEx.IgnoreCase = True
  ReplaceTest = regEx.Replace(tekst, replStr)
End Function

Set Con = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("../database/afront.mdb")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

Sql = "SELECT * FROM menuopsaetning"
Set Record =  Con.Execute(Sql)

%>

<% Do while Not Record.EOF %>


<b><%= Record("link") %></b><br>


<%
strTekst = record("html")
udenHTML = ReplaceTest(strTekst,"(<[^><]*>)"," ")
response.write udenHTML
%>

<br><br>

<%
Record.MoveNext
Loop
%>

<%
Con.Close
Set Con = Nothing
%>

/Goose
Avatar billede nythjem Nybegynder
25. juni 2004 - 13:38 #7
Gud hvor er jeg dum.. Jeg placerede det lige selv før loopet, så fungerede det bare perfekt.

Tusinde tak skal du have, og god weekend!
Avatar billede goose Nybegynder
25. juni 2004 - 13:42 #8
- tak i lige måde :o)

/Goose
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