xwolf.de|com

Menü

Inhalt dieser Site

Ansicht

Individuelle Benutzerkonfiguration für die Site.

Druckansicht Startseite Suchen

A A A A

Suchmaschine: Lokale Dateisuche

Mit Hilfe dieses Programmes kann man eine lokale Dateisuche ausführen lassen. 'Lokale Dateisuche' heißt, daß Dateien auf dem eigenen Server/Account nach dem Vorkommen von eingegebenen Wörtern durchsucht werden und als Ergebniss eine Liste der Dateien ausgegeben wird, in welchen das oder die Worte vorkamen.
Diese Suchmaschine ist dabei nicht zu verwechseln mit Internet-Suchmaschinen, welche als Ergebnis URL's von im Netz befindlichen Seiten wiedergeben. Die Suchmaschine beschränkt sich allein auf Dateien, welche auf demselben Server liegen, wie das CGI-Skript.

Source Code und Beispiel-Datendateien


Perl Sourcecode
search.pl Das Skript search.pl (V1.13)
Konfigurations- und Styledateien
search_result.html Beispiel-Layout für die Ausgabe
search_ergebniszeile.html Beispiel-Layout für ein einzelnes Suchergebnis
search_notfound.html Beispiel-Layout für das Nichtfinden von Dateien
suchen.html Beispiel-Layout für eine Suchmaske
search_maske.html Beispiel-Layout für eine in die Ergebnisse eingebettete Suchmaske
search_top.html Beispiel-Layout für den oberen Rahmen der Suchausgabe
search_bot.html Beispiel-Layout für den unteren Rahmen der Suchausgabe
ignorefiles.txt Beispiel für eine Datei mit einer liste zu ignorierender Dateien.
Achtung: Sollte beim obigen Download-Link fehlerhafterweise als Dateiname "xload.cgi" angegeben sein, ignorieren Sie dies und benennen den Dateinamen um. Einige Browser ignorieren leider den Standard zur Übermittlung von Dateinamen...

Wirkungsweise

Ein Beispiel-Aufruf sehen Sie z.B. in der Menüliste links. Ein anderer Aufruf befindet sich auf der Seite http://www.xwolf.de/suchen.shtml.
Sie können neben der Eingabe über Eingabefelder natürlich auch direkt ein Link auf eine Ausgabe setzen. So zum Beispiel folgender Link, der immer auf die Ergebnisse der Suche nach require in Perldateien weisen würde:

http://www.xwolf.de/cgi-bin/search.pl?search=require&files=pl+cgi+pl.txt+pm&strict=0&methode=0
(Falls Sie selbst solch ein Link erstellen wollen, achten Sie darauf, daß Leerzeichen bei der Parameterübergabe an CGI-Programme durch ein Pluszeichen ersetzt werden. Einfacher ist es, die Suchmaschine aufzurufen und die URL aus der Windowlokation des Browser auszulesen.)

Installation

Kopieren Sie die Datei search.pl in Ihr CGI-BIN-Verzeichnis. Setzen Sie die Ausführungsrechte mittels CHMOD. Z.B.: chmod 755 search.cgi.
Ändern Sie im Programm folgende Zeilen:

Zeile 1: #!/local/bin/perl5 Geben Sie hier Ihren eigenen Pfad zu Perl ein, falls er von diesem abweicht.
Zeile 27: my $PROGURL = "/cgi-bin/search.pl"; Hier tragen Sie die URI ein, mit der das CGI-Skript augerufen wird, falls es woanders liegt.
Zeile 30: my @START_DIR = "/local/www/www.xwolf.com/"; Unterhalb dieses lokalen Verzeichnisses beginnt die Suche.
Sollen mehrere verschiedene Verzeichnisse benutzt werden, dann in folgender Weise einfuegen:
@START_DIR = ("/xwolf/www","/xwolf/www/misc","/xwolf/www/cgi", "/xwolf/www/perl","/xwolf/www/lib","/xwolf/www/faq", "/xwolf/www/freecode");
Wenn Sie die erlaubten pfade auf diese Weise angeben, sollten Sie die rekursive Suche, d.h. die Suche in Unterverzeichnissen, abschalten, da ja hier bereits dieselben angegeben sind.
Zeile 36: my %WEBROOTDIR = ("/local/www/www.xwolf.com/", "http://www.xwolf.de/"); Hier wird eingetragen, wo die entsprechenden URLs zu den durchsuchten Verzeichnissen sind. D.h.: Es werden jeweils 2 Variablen eingetragen, wobei die erste den lokalen Dateipfad entspricht, und die zweite den entsprechenden String fuer die Umwandlung zu einer URL.
Liegt eine Datei in /xwolf/www/test.html wird daraus die URL: http://www.xwolf.de/test.html
In der Regel benötigt man hier nur eine solche Angabe. Beachten Sie, daß die Liste der Reihenfolge nach durchsucht wird. So ist es unnötig hier jedes Verzeichnis UNTERHALB des HTML-Root Verzeichnisses einzutragen, da durch die Angabe des Root-Verzeichnisses die Ersetzungen bereits erledigt werden.
Zeile 49/50: @IGNORE_DIR = ('/etc,', '/usr', '/var', '/root', '/dev', '/bin', '/src', '/vol', '/mail'); Egal von wo die Suche erfolgt, in diesen Verzeichnissen und dessen Unterverzeichnissen wird nicht gesucht.
Diese Angabe sollte verwendet werden, damit nicht uebers Web das Startdir umdefiniert wird, und Files in z.B. /etc/ durchsucht werden koennen. (Auch wenn dies selbst nicht viel ausmachen wuerde, da auch dann keine Daten zurueckgegeben werden wuerden.)
Zeile 57: my $IGNORE_FILELIST = "searchlayout/ignorefiles.txt"; Hier kann man eine lokale Datei angeben, welche die vollständigen Namen von Dateien enthält, welche nicht durchsucht und damit nicht gefunden werden sollen. Die Liste enthält pro Zeile einen Dateinamen und sonst keine weiteren Angaben. Beachten Sie, dass diese Datei fuer das Skript lesbar sein muß.
Zeile 85: my $TEMPLATE_PAGEKOPF = "searchlayout/search_top.html"; Falls vor der eigentlichen Ausgabe andere HTML-Tags ausgegeben werden sollen, können diese eingebunden werden, indem sie in eine Datei gespeichert werden, und dann hiermit eingelesen werden. Als Variable wird hier also der Dateiname eingegeben.
Die datei muß für den Webserver lesbar sein.
Zeile 91: my $TEMPLATE_NOTHINGFOUND = "searchlayout/search_notfound.html"; Diese HTML-Datei wird eingeblendet, falls kein Suchbegriff gefunden wurde.
Zeile 94: my $TEMPLATE_PAGEENDE = "searchlayout/search_bot.html"; Wie $TEMPLATE_PAGEKOPF, nur das diese Datei die Endtags enthält.
Zeile 97: my $TEMPLATE_SUCHMASKE = "searchlayout/search_maske.html"; Hier tragen Sie den lokalen Pfad zu einer Datei ein, die Ihre individuelle Suchmaske enthält. Hierin sollten/können HTML-Tags verwendet werden.
Zeile 101: my $TEMPLATE_RESULTS = "searchlayout/search_result.html"; In dieser Datei findet sich das Template fuer die Ausgabe. Ausgaben werden in die Variablen
  • #CHECKEDPAGES# - Wieviele Seiten wurden durchsucht
  • #CHECKEDDIRS# - Wieviele Verzeichnisse
  • #FOUNDFILES# - Wieviele Dateien hatten Treffer
  • #RESULT# - Ergebnistabelle. Die Tabelle selbst hat bei den einzelnen Tabelleneintraegen CSS-Klassen angeboten, so dass man damit auf das Design in den Tabellenzeilen einwirken kann.
geschrieben.

Bemerkung zu Templates: In den Templates werden folgende Variablen durch die Programmspezifischen Variablen ersetzt:

  • #ZEIT# - Aktuelle Systemzeit, inkl. Datum
  • #DATUM# - Aktuelles Datum
  • #UHRZEIT# - Aktuelle Uhrzeit
  • #HOST# - Hostadresse desjenigen der die Seite aufruft
  • #PROGURL# - Die Variable $progurl
  • #(Input-Feldname)# - Dessen Wert
Zeile 113: my $TEMPLATE_ERGEBNISSZEILE = "searchlayout/search_ergebnisszeile.html"; Hier wird definiert, wie eine einzelne Ergebniszeile auszusehen hat. Moegliche Variablen hier sind:
  • #url# - Die URL zur Seite
  • #title# - Der Seitentitel
  • #desc# - Seitenbeschreibung aus der Meta-Tag <meta name="description"> sofern vorhanden
  • #treffer# - Zeilen (vollstaendige) in denen Treffer vorkommen.
  • #hits# - Anzahl der Treffer in der Datei
  • #ratio# - Wahrscheinlichkeit, dass diese Datei die richtige ist. (abhaengig von der maximalen Zahl der Treffer aus allen Suchergebnissen)
  • #rankingsymbol# - Ein HTMLText oder Bild, welcher in @RATIOSYMBOLS definiert wird und abhaengig vom Ratio aus der Liste genommen und ausgegeben wird.

Info

$Id: suchmaschine.shtml,v 1.3 2003/05/21 14:41:11 xwolf Exp $, Linkcount: 1
© 1996 - 2003 by xwolf