|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Yaroslav A Kulikov 2:5036/32.13 15 Mar 2001 20:45:45 To : All Subject : [script] Hекорректная работа --------------------------------------------------------------------------------
Имеется скрипт, который работает, но очень плохо: выкладываю на сайт и он
выводит все, что только есть вместо того, чтобы вывести необходимое.
Как мне это можно исправить(исходный код внизу)?
files.lst - файл, содержащий имена файлов, в которых нужно искать.
*.cth - файлы текстового формата, в которых производится поиск.
*.html - шаблоны выводимой страницы.
Скрипт не работает здесь: http://cleverth.bos.ru/cgi-bin/search.cgi
ДДД Тут начинается файл search.cgi ДДД
#!e:/language/perl/bin/perl -w
# Ярослав Алексеевич Куликов, 2000
# Почта: owlet@stu.lipetsk.ru
# Hаписано специально для http://cleverth.bos.ru
use locale;
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@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;
$value =~ s/<!--(.|\n)*-->//g;
$value =~ s/<([^>]|\n)*>//g;
$FORM{$name} = $value;
}
$FORM{string} ||= "дурак";
$FORM{string} =~ s{\\.|\W}{}g; #удаляю все символы, кроме букв, цифр и "_"
$FORM{string} =~ s{_}{*, *};
open( FN, "../misc/files.lst" ) or die;
@filenames = <FN>;
close( FN );
print "Content-type: text/html \n\n";
print qq{<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\n\n};
open( HEAD, "../misc/header.html" );
while( <HEAD> ) { print; }
close( HEAD );
print qq{<table width="100%" border=0 cellpadding=0 cellspacing=10>\n <tr>\n
<td width="155" valign="top">};
open ( TEMP, "../misc/mainmenu.html" );
while( <TEMP> ) { print; }
close ( TEMP );
print qq{<br><center>};
open ( TEMP, "../misc/all.counter" );
while( <TEMP> ) { print; }
close ( TEMP );
print qq{</center></td>\n <td valign="top">};
open ( TEMP, "../misc/menu.html" );
while( <TEMP> ) { print; }
close ( TEMP );
$flag = 0;
$hflag = 0;
$FORM{string} =~ s{\*, \*}{\|};
foreach $filename (@filenames)
{
$filename = "../misc/".$filename;
open( DATAFILE, $filename );
$header = <DATAFILE>;
while( <DATAFILE> )
{
chomp;
if ( m{.*$FORM{string}}i )
{
$flag = 1;
if ( $hflag == 0 )
{
print qq{ <p class="header">$header</p>\n};
$hflag = 1;
}
( $phrase, $author ) = split m{\|};
print qq{ <p> <img border=0 width=21 height=18
src="/images/dot1.gif" alt="*" align="middle"> $phrase};
if ( $author ) { print qq{($author)}; }
print qq{</p>\n};
}
}
$hflag = 0;
close( DATAFILE );
}
print qq{<br>\n <p align="center" style="text-align:center;">};
if ( $flag == 0 ) { print qq{К сожалению, ничего найти не удалось. }; }
print qq{Попробуйте <a href="/search.shtml" title="Hайти афоризмы"
target="_self">поискать еще</a></p>};
open ( TEMP, "../misc/menu.html" );
while( <TEMP> ) { print; }
close ( TEMP );
print qq{ </td>\n </tr>\n</table>};
open( FOOT, "../misc/footer.html" );
while( <FOOT> ) { print };
close( FOOT );
ДДД А здесь search.cgi кончается ДДД
C уважением, Yaroslav A. Kulikov.
--- УТВЕРЖДАЮ. MSG-редактор капитан 2.5 ранга Голд Дедович фор ДОС UNREG
* Origin: Такие вопросы с кандачка не решаются! (2:5036/32.13)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/32863ab0f1bf.html, оценка из 5, голосов 10
|