title image


Smiley Suchmaschine gibt keine Dateien aus
Hab mal ein kleines Perl-Script ausgegraben, das (eigentlich) alle html-Dateien im Ordner "documents" durchsuchen soll.



Fehler gibt es keine, aber leider auch keine Suchergebnisse... Jemand ne Ahnung warum?



Die Perl-Datei (search.pl):



#!C:/apache/Perl/bin/MSWin32-x86/perl.exe -w



$basedir = '/documents/';

@files = ('*.html');

$search_url = 'search.html';



#------------------------------------------------------------------------

&parse_form;

&get_files;

&search;

&return_html;



#------------------------------------------------------------------------

sub parse_form {



# Eingaben holen

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});



# Split the name-value pairs

@pairs = split(/&/, $buffer);



foreach $pair (@pairs) {

($name, $value) = split(/=/, $pair);



$value =~ tr/+/ /;

$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;



$FORM{$name} = $value;

}

}



#------------------------------------------------------------------------

sub get_files {



chdir($basedir);

foreach $file (@files) {

$ls = `ls $file`;

@ls = split(/s+/,$ls);

foreach $temp_file (@ls) {

if (-d $file) {

$filename = "$file$temp_file";

if (-T $filename) {

push(@FILES,$filename);

}

}

elsif (-T $temp_file) {

push(@FILES,$temp_file);

}

}

}

}



#------------------------------------------------------------------------

sub search {



@terms = split(/\s+/, $FORM{'terms'});



foreach $FILE (@FILES) {



open(FILE,"$FILE");

@LINES = ;

close(FILE);



$string = join(' ',@LINES);

$string =~ s/\n//g;

if ($FORM{'boolean'} eq 'Und-verknüpft') {

foreach $term (@terms) {

if ($FORM{'case'} eq 'ignorieren') {

if ($string =~ /$term/i) {

$include{$FILE} = 'yes';

last;

}

else {

$include{$FILE} = 'no';

}

}

elsif ($FORM{'case'} eq 'beachten') {

if (!($string =~ /$term/)) {

$include{$FILE} = 'no';

last;

}

else {

$include{$FILE} = 'yes';

}

}

}

}

elsif ($FORM{'boolean'} eq 'Oder-verknüpft') {

foreach $term (@terms) {

if ($FORM{'case'} eq 'ignorieren') {

if ($string =~ /$term/i) {

$include{$FILE} = 'yes';

last;

}

else {

$include{$FILE} = 'no';

}

}

elsif ($FORM{'case'} eq 'beachten') {

if ($string =~ /$term/) {

$include{$FILE} = 'yes';

last;

}

else {

$include{$FILE} = 'no';

}

}

}

}

if ($string =~ /(.*)/i) {

$titles{$FILE} = "$1";

}

else {

$titles{$FILE} = "$FILE";

}

}

}



#------------------------------------------------------------------------

sub return_html {



print "Content-type: text/html\n\n";

print "\n \n Suchergebnisse: \n \n";

print "\n \n Suchergebnisse: \n \n";

print "\n";

print "\n";

foreach $key (keys %include) {

if ($include{$key} eq 'yes') {

print "$titles{$key}\n";

}

}

print "\n";

print "\n";

print "Suchdetails:\n";

print "\n";

print "Suchbegriffe: ";

$i = 0;

foreach $term (@terms) {

print "$term";

$i++;

if (!($i == @terms)) {

print ", ";

}

}

print "\n";

print "Verwendete Verknüpfung: $FORM{'boolean'}\n";

print "Groß- und Kleinschreibung: $FORM{'case'}\n";

print "\n";

print "\nZurück zur Suche\n";

print "\n";

print "\n";

print "\n\n";

}







Aufruf aus der html(search.html):







Suche







Suche in: documents







Stichwörter:





Suchoptionen:



Und-verknüpft

Oder-verknüpft







Groß- und Kleinschreibung:



ignorieren

unterscheiden































geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: