[GastForen Archiv Perl und CGI startdir Suche in mehreren Ordnern

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

startdir Suche in mehreren Ordnern

Schomo
Beiträge gesamt: 96

3. Mai 2002, 15:26
Beitrag # 1 von 5
Bewertung:
(2248 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich habe eine Site auf der ich eine Suchmaschine laufen lasse. Nun hab ich das Problem, dass ich die Ordner der site nicht verändern darf. Nun sucht meine kleine Suchmaschine vom cgi-bin Ordner aus mit $startdir='../';Blöderweise sucht die Suchmaschine aber auch im cgi-bin Ordner, was sie nicht soll, da dort die ganzen Templates liegen.
Wie kann ich Perl sagen, dass die Suchmaschine in mehreren Ordnern suchen soll? Vielleicht ne blöde Frage, aber ich bin Perl Neuling.

Gruss Schomo

[ Diese Nachricht wurde geändert von: Schomo am 2002-05-03 15:28 ]
X

startdir Suche in mehreren Ordnern

SabineP
Beiträge gesamt: 7586

3. Mai 2002, 16:45
Beitrag # 2 von 5
Beitrag ID: #3480
Bewertung:
(2248 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das kann man aus der Ferne schlecht sagen, ohne die Suchmaschine zu kennen.
opendir, readdir und closedir sind Funktionen,
um Verzeichnisinhalte zu lesen.
Dann kann man noch die zu suchenden Dateien nach der Datei-Endung unterscheiden.
Das ist aber nur eine von vielen Möglichkeiten.


als Antwort auf: [#3476]

startdir Suche in mehreren Ordnern

Schomo
Beiträge gesamt: 96

3. Mai 2002, 23:03
Beitrag # 3 von 5
Beitrag ID: #3487
Bewertung:
(2248 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,
ich hab das Script mal schnell online gestellt.
http://www.testort.de/perl.htm

Gruss Schomo


als Antwort auf: [#3476]

startdir Suche in mehreren Ordnern

SabineP
Beiträge gesamt: 7586

4. Mai 2002, 10:37
Beitrag # 4 von 5
Beitrag ID: #3494
Bewertung:
(2248 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wenn Du die Subroutine "sub suchen" durch diesen Code ersetzt, dann sucht Dein Script in allen Verzeichnissen außer in den Verzeichnissen in denen die Zeichenkette "cgi" vorkommt.

Code:

sub suchen{
my $file=$_;
my $dir=$File::Find::dir;
return if($dir =~ /cgi/i);
$i=0;
return unless -f $file;
return unless -T $file;
return unless $file=~/.+\.((s)?htm(l)?|txt)$/;
open(FILE,"<$file");
while(<FILE>){
$zeile=$_;
$head=1 if($zeile=~/\<head/);
$head=0 if($zeile=~/\<\/head/ || $zeile=~/\<body/);
$zeile=~s/(\<[^\>\<]*\>)//g;
$zeile="" if($head);
if(($caps eq "on") && $zeile=~/$suchbegriff/){
for(;$zeile=~m/$suchbegriff/g;++$i){
}
}
if(($caps eq "") && $zeile=~/$suchbegriff/i){
for(;$zeile=~m/$suchbegriff/gi;++$i){
}
}
}
close(FILE);
$liste{"$dir/$file"}="$i" if($i>0);
$_=$file;
}



In der Variable "$startdir" steht das Startverzeichnis drin relativ zum Suchscript.

../ bedeutet eine Verzeichnisebene höher
../../ bedeutet zwei Verzeichnisebenen höher


als Antwort auf: [#3476]

startdir Suche in mehreren Ordnern

Schomo
Beiträge gesamt: 96

6. Mai 2002, 15:31
Beitrag # 5 von 5
Beitrag ID: #3570
Bewertung:
(2248 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Tausend Dank,
kommt sehr gut. Das ist mir eine grosse Hilfe gewesen!!!!!!!!!!
Ich war schon schwer am schwitzen.

Liebe Grüsse Schomo


als Antwort auf: [#3476]
X