Avatar billede clausmo Nybegynder
16. maj 2005 - 17:54 Der er 1 løsning

søgefunktion i database

Jeg vil lave en søgefunktion, som leder i en database, der indeholder sites sider (altså også med thml-tags og andet rod).

Mit problem er "Hvordan får jeg fjernet alle koderne, så der kun kommer ren tekst frem - og kun ordene omkring det søgte kommer frem" ('ligesom google')

Og jeg vil også gerne kunne fremhæve de/ det søgte ord i visningen.

Håber I kan hjælpe

...... jeg har prøvet med det her:

<%
Function stripHTML(strHTML)
  Dim objRegExp, strOutput
  Set objRegExp = New Regexp
  objRegExp.IgnoreCase = True
  objRegExp.Global = True 
  strOutput = objRegExp.Replace(strHTML, "")
  strOutput = Replace(strOutput, "<", "&lt;")
  strOutput = Replace(strOutput, ">", "&gt;")
  strOutput = Replace(strOutput, CHR(10), "<BR>")
  stripHTML = strOutput 
  Set objRegExp = Nothing
End Function


If Request.QueryString("search").Count Then   
   
strKeyword = Trim(Request.QueryString("search"))
strKeyword = Replace(strKeyword,"'","''")   

    strSQLQuery = "SELECT * FROM data WHERE (Indhold LIKE '%"&strKeyword&"%')"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open strSQLQuery, conn, 3, 3
    Response.write("<table width=500 border=1>")
If Not (rs.BOF Or rs.EOF) Then
    do until rs.eof
   
    sIndhold=(rs("Indhold"))
      if len(sIndhold)>100 then
        Response.Write( "<tr><TD>" & left(stripHTML(sIndhold),100) & "</TD></tr>")

      else
          Response.Write("<tr><TD>" &sIndhold& "</TD></tr>")
      end if

    rs.movenext
    loop
else
Response.Write "<tr><td>S&oslash;g fandt ikke noget til dig!</td></tr>"
end if
response.write("</table>")
%>
Avatar billede nythjem Nybegynder
17. maj 2005 - 00:44 #1
Hej Clausmo..

Denne her funktion er helt suveræn..

<%
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 = rs("Indhold")
  udenHTML = left(ReplaceTest(strTekst,"(<[^><]*>)"," "),350)
  If Len(udenHTML) < 350 Then
  Response.Write udenHTML
  Else
  Response.write udenHTML & "..."
  End If
%>
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