Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Веб-программирование > Perl
Перезагрузить страницу Как настроить программу Perl
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Cybber
Guest
 
Сообщений: n/a
По умолчанию Как настроить программу Perl - 04.10.2007, 11:10

Помогите пожалуюста, настройть поиск на сайте. Так как начил изучить CGI не могу настройть этот исходник(правда ношол его в нете).

Код:
#!/usr/bin/perl

##############################################################################
# If you encounter problems while trying to configure this script, help      #
# is available.  In order to get your problem solved:                        #
#       1) Read this file thoroughly                                         #
#       2) Consult the THANKS-CGI Frequently Asked Questions:                #
#               http://www.thanks-cgi.com/faq/                               #
#       3) If you are still having difficulty installing this script, send   #
#          e-mail to: webmaster@thanks-cgi.com                               #
#          Include any error messages you are receiving and as much detail   #
#          as you can so we can spot your problem.                           #
#                                                                            #
# Hopefully we will be able to help you solve your problems.  Thank you.     #
##############################################################################
# COPYRIGHT NOTICE                                                           #
# Copyright 1998 THANKS-CGI All Rights Reserved.                             #
#  Not for re-sell or re-distribution.                                       #
##############################################################################

$searchroot = "../006";                        # Thr directory of where to start search. You have to set "chmod 777" for it.

$searchrooturl = "http://www.woscripts.com/cgi-bin/cgi/scripts/search/006";        # The URL of where to start search.

@searchfiletype = ("*.htm","*.html","*.txt");                        # Define which kind of file you are going to search.

$unix=1;                                                # If your server is UNIX, please set$unix=1. otherwise set to $unix=0, sucj as NT server.

$resultpage = "index.html";        # The HTML of result screen.

###############
@querys=split(/&/,$ENV{'QUERY_STRING'});
foreach (@querys) {&setv($_);}

read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
@pairs=split(/&/,$buffer);
foreach (@pairs) {&setv($_);}

if ($unix==1) {
   @dir=($searchroot);

   @temp1=@dir;
   $redo=1;
   while ($redo==1) {
      $redo=0;
      @temp2=();
      foreach (@temp1) {
         chdir($_);
         $temp3 = `ls -l $_`;
         @temp3 = split(/\n/, $temp3);
         @temp4 = ();
         for ($i=0;$i<=$#temp3;$i++) {
             $temp3[$i] =~ s/\s+/ /g;
             ($chkchmod,$chkno,$chkway,$chkowner,$chksize,$chkmonth,$chkday,$chktime,$chkname)=split(/ /,$temp3[$i]);
             if (($chkname) && ($chkchmod =~ /^d/)) {
                push(@temp4,"$_/$chkname");
             }
         }
         if ($#temp4>=0) {$redo=1;}
         @temp2 = (@temp2,@temp4);
      }
      @temp1=@temp2;
      @dir=(@dir,@temp2);
   }

   @files=();
   foreach (@dir) {
      foreach $searchfiletype (@searchfiletype) {
         chdir($_);
         $temp=`ls -l $_/$searchfiletype`;
         @temp=split(/\n/, $temp);
         for ($i=0;$i<=$#temp;$i++) {
             $temp[$i] =~ s/\s+/ /g;
             ($chkchmod,$chkno,$chkway,$chkowner,$chksize,$chkmonth,$chkday,$chktime,$chkname)=split(/ /,$temp[$i]);
             if (($chkname) && ($chkchmod =~ /^-/)) {
                push(@files,"$chkname");
             }
         }
      }
   }
} else {
   chdir($searchroot);
   $temp = `dir /b/S $searchfiletype[0]`;
   for ($i=1;$i<=$#searchfiletype;$i++) {
       $temp .= `dir /b/S $searchfiletype[$i]`;
   }
   @files = split(/\s+/, $temp);

   foreach (@files) {
      $_ =~ s/\\/\//g;
   }
}


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

@find=();
foreach $file (@files) {
   open(FILE,"$file");
   @lines = <FILE>;
   close(FILE);

   $datas = join(' ',@lines);
   $datas =~ s/\n//g;

   if ($datas =~ /$V{'searchword'}/i) {
      push(@find,$file);
   }
}

open(RESULT,"$resultpage");
@result = <RESULT>;
close(RESULT);

foreach (@result) {
   if ($_ =~ //) {
      if ($#find>=0) {
         print "\n";
         foreach $find (@find) {
            $find =~ s/$searchroot//gi;
            print "

<a href=$searchrooturl$find>$searchrooturl$find</a>\n";
         }
         print "\n";
         $match=$#find+1;
         print "

Find $match document match '<font color=ff0000>$V{'searchword'}</font>' on this web!\n";
      } else {
         print "

No find document match '<font color=ff0000>$V{'searchword'}</font>' on this web!\n";
      }
   }
   else {
      print;
   }
}
exit 0;
##########
sub setv {
($name,$value)=split(/=/,$_[0]);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
$value =~ s/\n|\'//g;
if ($V{$name}) {$V{$name}="$V{$name}Ў±$value";} else {$V{$name}=$value;}
}



вот что было написано в ридми


Код:
#!/usr/bin/perl

##############################################################################
# If you encounter problems while trying to configure this script, help      #
# is available.  In order to get your problem solved:                        #
#       1) Read this file thoroughly                                         #
#       2) Consult the THANKS-CGI Frequently Asked Questions:                #
#               http://www.thanks-cgi.com/faq/                               #
#       3) If you are still having difficulty installing this script, send   #
#          e-mail to: webmaster@thanks-cgi.com                               #
#          Include any error messages you are receiving and as much detail   #
#          as you can so we can spot your problem.                           #
#                                                                            #
# Hopefully we will be able to help you solve your problems.  Thank you.     #
##############################################################################
# COPYRIGHT NOTICE                                                           #
# Copyright 1998 THANKS-CGI All Rights Reserved.                             #
#  Not for re-sell or re-distribution.                                       #
##############################################################################

$searchroot = "../006";                        # Thr directory of where to start search. You have to set "chmod 777" for it.

$searchrooturl = "http://www.woscripts.com/cgi-bin/cgi/scripts/search/006";        # The URL of where to start search.

@searchfiletype = ("*.htm","*.html","*.txt");                        # Define which kind of file you are going to search.

$unix=1;                                                # If your server is UNIX, please set$unix=1. otherwise set to $unix=0, sucj as NT server.

$resultpage = "index.html";        # The HTML of result screen.

###############
@querys=split(/&/,$ENV{'QUERY_STRING'});
foreach (@querys) {&setv($_);}

read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
@pairs=split(/&/,$buffer);
foreach (@pairs) {&setv($_);}

if ($unix==1) {
   @dir=($searchroot);

   @temp1=@dir;
   $redo=1;
   while ($redo==1) {
      $redo=0;
      @temp2=();
      foreach (@temp1) {
         chdir($_);
         $temp3 = `ls -l $_`;
         @temp3 = split(/\n/, $temp3);
         @temp4 = ();
         for ($i=0;$i<=$#temp3;$i++) {
             $temp3[$i] =~ s/\s+/ /g;
             ($chkchmod,$chkno,$chkway,$chkowner,$chksize,$chkmonth,$chkday,$chktime,$chkname)=split(/ /,$temp3[$i]);
             if (($chkname) && ($chkchmod =~ /^d/)) {
                push(@temp4,"$_/$chkname");
             }
         }
         if ($#temp4>=0) {$redo=1;}
         @temp2 = (@temp2,@temp4);
      }
      @temp1=@temp2;
      @dir=(@dir,@temp2);
   }

   @files=();
   foreach (@dir) {
      foreach $searchfiletype (@searchfiletype) {
         chdir($_);
         $temp=`ls -l $_/$searchfiletype`;
         @temp=split(/\n/, $temp);
         for ($i=0;$i<=$#temp;$i++) {
             $temp[$i] =~ s/\s+/ /g;
             ($chkchmod,$chkno,$chkway,$chkowner,$chksize,$chkmonth,$chkday,$chktime,$chkname)=split(/ /,$temp[$i]);
             if (($chkname) && ($chkchmod =~ /^-/)) {
                push(@files,"$chkname");
             }
         }
      }
   }
} else {
   chdir($searchroot);
   $temp = `dir /b/S $searchfiletype[0]`;
   for ($i=1;$i<=$#searchfiletype;$i++) {
       $temp .= `dir /b/S $searchfiletype[$i]`;
   }
   @files = split(/\s+/, $temp);

   foreach (@files) {
      $_ =~ s/\\/\//g;
   }
}


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

@find=();
foreach $file (@files) {
   open(FILE,"$file");
   @lines = <FILE>;
   close(FILE);

   $datas = join(' ',@lines);
   $datas =~ s/\n//g;

   if ($datas =~ /$V{'searchword'}/i) {
      push(@find,$file);
   }
}

open(RESULT,"$resultpage");
@result = <RESULT>;
close(RESULT);

foreach (@result) {
   if ($_ =~ //) {
      if ($#find>=0) {
         print "\n";
         foreach $find (@find) {
            $find =~ s/$searchroot//gi;
            print "

<a href=$searchrooturl$find>$searchrooturl$find</a>\n";
         }
         print "\n";
         $match=$#find+1;
         print "

Find $match document match '<font color=ff0000>$V{'searchword'}</font>' on this web!\n";
      } else {
         print "

No find document match '<font color=ff0000>$V{'searchword'}</font>' on this web!\n";
      }
   }
   else {
      print;
   }
}
exit 0;
##########
sub setv {
($name,$value)=split(/=/,$_[0]);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
$value =~ s/\n|\'//g;
if ($V{$name}) {$V{$name}="$V{$name}Ў±$value";} else {$V{$name}=$value;}
}
Ответить с цитированием
  (#2 (permalink)) Старый
ivanyan ivanyan вне форума
Member
 
Сообщений: 305
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.06.2002
По умолчанию 07.02.2008, 14:36

так а в чем проблема-то? в незнании английского?

$searchroot = "../006"; # Директория откуда начинать поиск, необходимо установить права "chmod 777" для неё.

$searchrooturl = "http://www.woscripts.com/cgi-bin/cgi/scripts/search/006"; # Адрес откуда начинать поиск.

@searchfiletype = ("*.htm","*.html","*.txt"); # типы файлов в которых производить поиск.

$unix=1; # установить 1 если скрипт установлен на UNIX сервере, и 0 в других случаях.

$resultpage = "index.html"; # имя HTML страницы, на которую будут переданы результаты поиска. (здесь нужно повнимательнее почитать мануал)
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Perl ParadoXD MySQL 1 27.12.2011 18:39
Как настроить программу для COM порта? rambler87 Периферия 8 15.11.2011 00:34
Perl + OpenGL DarkPerl Perl 0 25.08.2011 03:29
Многопоточность в Perl Baltika+ Perl 2 04.02.2011 18:35
Требуется web-программист (Perl или PHP, готовый переучиться на Perl). офис в Казани uCoz Работа 0 25.01.2011 16:41
Разработать на языке Perl CGI программу-переводчик Rushan Perl 1 21.01.2011 19:06
Perl программист Unity Staff Работа 0 10.06.2008 15:33
Perl-разработчик, от 80 000 р. olya Работа 0 17.01.2008 19:03
Как настроить написанную программу diikar С/С++ 7 02.06.2006 16:19
Miniolimp как настроить написанную программу kost Игры разума 11 02.02.2006 01:27
Как работать с perl + XML Igvar Perl 1 12.04.2004 14:30
Как установить Perl Anonymous Perl 2 07.12.2003 13:24



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов