hilfdirselbst.ch
Facebook Twitter gamper-media

"Geht nicht" ist keine gültige Fehlermeldung!

Schomo
Beiträge: 96
3. Mai 2002, 15:26
Beitrag #1 von 5
Bewertung:
(1683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

startdir Suche in mehreren Ordnern


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 ] Top
 
X
SabineP  M 
Beiträge: 7586
3. Mai 2002, 16:45
Beitrag #2 von 5
Beitrag ID: #3480
Bewertung:
(1683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

startdir Suche in mehreren Ordnern


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] Top
 
Schomo
Beiträge: 96
3. Mai 2002, 23:03
Beitrag #3 von 5
Beitrag ID: #3487
Bewertung:
(1683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

startdir Suche in mehreren Ordnern


Hi,
ich hab das Script mal schnell online gestellt.
http://www.testort.de/perl.htm

Gruss Schomo
als Antwort auf: [#3476] Top
 
SabineP  M 
Beiträge: 7586
4. Mai 2002, 10:37
Beitrag #4 von 5
Beitrag ID: #3494
Bewertung:
(1683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

startdir Suche in mehreren Ordnern


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] Top
 
Schomo
Beiträge: 96
6. Mai 2002, 15:31
Beitrag #5 von 5
Beitrag ID: #3570
Bewertung:
(1683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

startdir Suche in mehreren Ordnern


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] Top
 
X