K
Ken Saunders
Below is the script I've been working on. I know theres something
wrong with it but can't find it for the life of me. I've made some
changes to tighen up the logic. Can someone help me get this running.
Its supposed to search my all of my files and return a page with the
matchs. I had this working as an html file and a cgi but when I tried
to merge the two it go broken. Thanks everyone
#!/usr/bin/perl
# Ken Saunders
#11/16/2004
#itc 216
#assignment 3
#this perl script displays a search form, and searchs for matchs on
html files
use strict;
use File::Find;
use CGI;
#variable - query
my $query = param("query");
# There's nothing in the query string
if ($query eq '')
{
print header();
print start_html();
# Displays the search form
print q(<form action="./assign_3.cgi" method="post">);
print q(<input type="text" name="query" size="50" />);
print q(<input type="submit" />);
print q(</form>);
print end_html();
# Bail out early if there are no results to print
exit;
#$filePath = $File::Find::name;
#$filePath =~
s/(home\/classes\/ksaund01\/public_html)/~ksaund01/ig
}
#prints the header wiht the query name in an ordered list
print header();
print start_html();
print "\n<p>For the query $query, these results were
found:</p>\n<ol>\n";
undef $/;
#search
find( sub
{
return if($_ =~ /^\./);
return unless($_ =~ /\.html/i);
stat $File::Find::name;
return if -d;
return unless -r;
open(FILE, "< $File::Find::name") or return;
my $string = <FILE>;
close (FILE);
return unless ($string =~ /\Q$query\E/i);
my $page_title = $_;
if ($string =~ /<title>(.*?)<\/title>/is)
{
$page_title = $1;
}
print "<li><a href=\"$File::Find::name\">$page_title</a></li>\n";
},
'/~ksaund01/page1.html');
print "</ol>\n";
print end_html();
End
wrong with it but can't find it for the life of me. I've made some
changes to tighen up the logic. Can someone help me get this running.
Its supposed to search my all of my files and return a page with the
matchs. I had this working as an html file and a cgi but when I tried
to merge the two it go broken. Thanks everyone
#!/usr/bin/perl
# Ken Saunders
#11/16/2004
#itc 216
#assignment 3
#this perl script displays a search form, and searchs for matchs on
html files
use strict;
use File::Find;
use CGI;
#variable - query
my $query = param("query");
# There's nothing in the query string
if ($query eq '')
{
print header();
print start_html();
# Displays the search form
print q(<form action="./assign_3.cgi" method="post">);
print q(<input type="text" name="query" size="50" />);
print q(<input type="submit" />);
print q(</form>);
print end_html();
# Bail out early if there are no results to print
exit;
#$filePath = $File::Find::name;
#$filePath =~
s/(home\/classes\/ksaund01\/public_html)/~ksaund01/ig
}
#prints the header wiht the query name in an ordered list
print header();
print start_html();
print "\n<p>For the query $query, these results were
found:</p>\n<ol>\n";
undef $/;
#search
find( sub
{
return if($_ =~ /^\./);
return unless($_ =~ /\.html/i);
stat $File::Find::name;
return if -d;
return unless -r;
open(FILE, "< $File::Find::name") or return;
my $string = <FILE>;
close (FILE);
return unless ($string =~ /\Q$query\E/i);
my $page_title = $_;
if ($string =~ /<title>(.*?)<\/title>/is)
{
$page_title = $1;
}
print "<li><a href=\"$File::Find::name\">$page_title</a></li>\n";
},
'/~ksaund01/page1.html');
print "</ol>\n";
print end_html();
End