Un motore di ricerca testuale

di Daniele Bochicchio, in Classic ASP, Files, Coding,

Lo script di oggi effettua una ricerca testuale, su tutti i file contenuti in una directory.
La personalizzazione è molto semplice e richiede poche e semplici modifiche.
Accetta un primo paramentro che rappresenta l'esatta parola da ricercare ed un secondo che specifica il percorso reale (fisico) da cui partire.

<%

Function Search(what, scope)

  Set FSO = Server.CreateObject("Scripting.FileSystemObject")
  Set Dir = FSO.GetFolder(scope)

  For Each objFile in Dir.Files

    ' apro il file in lettura
    Set objThisFile = FSO.OpenTextFile(objFile.Path, 1, False)
    Content = LCase(objThisFile.ReadAll())
    objThisFile.Close
    Set objThisFile = Nothing

    ' controllo che abbia la parola cercata
    If Instr(Content, what)<>0 then
 strResults = strResults & "<li>" & objFile.Name
    End If
  Next

  ' con la ricorsione esploriamo anche le sottocartelle
  For Each SubDir in Dir.SubFolders
    strResults = strResults & Search(what, SubDir)
  Next

  ' liberiamo risorse
  Set SubDir = Nothing
  Set FSO = Nothing

  ' restituiamo i risultati
  Search = CStr( strResults )

End Function

' cerco "libri" in "/testi/"
parola = "libri"
Percorso = Server.MapPath("/testi/")

Response.write "<p>Risultati:<ol>"
Response.write (Search(parola, Percorso))
Response.write "</ol></P>"

%>

Viene effettuata la ricerca su tutti i file contenuti, a prescindere dalla loro estensione, nella directory specificata (scope) e con la ricorsione estende la ricerca stessa ad eventuali sottodirectory presenti, in maniera infinita (o meglio, fino a quando lo script non va in timeout per il troppo carico).
E' ideale per ricerche all'interno di file di solo testo, ma è da sconsigliare se è presente codice ASP al loro interno, perchè potrebbe trasformarsi in un'arma a doppio taglio per la sicurezza del vostro sito.

Per maggiori informazioni sul FSO (FileSystemObject), sui metodi e sulle proprietà supportate, utilizzate ampiamente in questo script, si veda
https://www.aspitalia.com/articoli/files.asp

oppure la categoria "Files" di unoscript@lgiorno.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi