28. september 2003 - 18:07Der er
11 kommentarer og 1 løsning
Hjælp til søgefunktion
Jeg har bikset et CMS system sammen og lavet en søgefunktion der søger i en tabel i databasen: <% SQL = "select * from TBL_pages where content like '%" & request.form("seek") & "%'" set rs = conn.execute(SQL) %> Da mit system smider alt i tabellen, dvs. alle tags, vil jeg gerne have ovenstående søgefunktion lavet om så den ikke søger i koder, men altså kun hvad der står mellem > og så < Kan det lade sig gøre ?
umiddelbart er det næsten umuligt med en access database .. nemmeste vej var at ha en replikeret udgave af feltet hvor du havde strippet den for den slags koder ...
men hvorfor må man ikke søge i image-tags f.eks. .. søger man på "bil" er det jo relevant nok at få et dokument der indeholder bil.jpg ...
Ja, så kunne du måske først fjerne alle tags (såsom <b>, <i>, <font> osv.) med replace under et feltalias, som du så søger på. Jeg har ikke tænkt det nærmere i gennem - bare en tanke.
lav et felt der ligger ved siden af dit indholds-felt som er den ree tekst strippet for alle de koder... er godtnok "dobbelt" data .. men er nemmeste løsning ... der kan du fjerne alle tag nemt og bekvemt med en regular expression ..
Problemet er blot, at der er tale om html editor så det er stort set umuligt at fjerne alle koder. Jeg lader lige spørgsmålet stå åbent, det kunne jo være der var en der havde en løsning.
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
og så kalder du : content = ReplaceTest(content,"(<[^><]*>)"," ")
well .. egentligt skal den vel tage alle de tegn .. (men det kan jo så også gå ud over et korrekt formatteret Ø ... dem kører du bare alm replaces på inden :)
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.