Для поиска необходимо создать список всех страниц базы данных, как и в
модуль последних изменений:
opendir(DIR, 'pages') или die "pages: $!";
my ©files = sort grep //"$link$/, readdir (DIR) ;
закрытый(КАТАЛОГ);
Затем анализ попаданий проходит по каждому заголовку, загружает страницу и выполняет поиск до тех пор, пока
он находит первое вхождение шаблона (без учета регистра). Страницы с хитами
добавляются в основной текст по мере их нахождения.
мой ($файл, $хитов);
foreach $file (©files) {
open(SF, "pages/$file") или die "$file: $!";
неопределенный $/;
мой $contents = <SF>;
закрыть(СФ);
если ($file =~ /$pat/i |[ $contents =~ /$pat/i) {
$хиты++;
$body .= "<a href=wiki.cgi?$file>$file<\/a> . . . . . .
$&<br>\n";
}
}
Когда все страницы просмотрены, пришло время представить результаты, заполнив
шаблон.
мой% пар;
$par{summary} = ($hits || "Нет") . "страницы, обнаруженные из
" . скаляр ©files . " поиск страниц.";
$par{title) = "Результаты поиска";
$par{page} = "Добро пожаловать, посетители";
$пар{тело} = $тело;
open(T, "template.html") или die "template.html: $!";
мой $nl = $/; неопределенный $/;
$_ = <Т>;
шкаф);
s/\$(\w+)/определено($par{$l)) ? $par{$l} : 'В/гео;
Распечатать;
$/ = $nl;
Сделанный. Управление возвращается на сервер до следующего запроса пользователя.
РАЗБИРАЕМ QUICKIWIKI
225
Далее мы рассмотрим необязательный серверный компонент, который имитирует работу веб-сервера.
отвечает на запросы браузера и, таким образом, действует как диспетчер модулей в
автономный режим развертывания.
СЕРВЕРНЫЙ КОМПОНЕНТ
Серверный компонент представляет собой раздел установки в том смысле, что этот
Компонент сценария инициализирует Perl-симуляцию веб-сервера. в
автономной конфигурации QuickiWiki, этот скрипт вызывает все остальные компоненты
модули.
Совет 7.1: Quicki-сервер нужен только для автономной QuickiWiki
Если у вас уже установлен обычный веб-сервер, такой как Apache, вам не нужно
нужен этот компонент скрипта. Вместо этого вы обычно настраиваете свою установку таким образом, чтобы
другие компоненты могут работать через существующий сервер. Это освещалось в
раздел Установка веб-сервера в Главе 3.
Вызываемый папкой или ярлыком на рабочем столе, серверный скрипт также запускает perl
переводчика на время сеанса, что означает более быструю реакцию на
индивидуальные запросы браузера. (Для достижения сопоставимого времени отклика на веб-сервере
контексте вам необходимо установить скомпилированный модуль perl для сервера, который называется
мод_перл.)
Как всегда со сценариями такого рода, вы должны убедиться, что в первой строке указано
правильное место для вашего интерпретатора perl. Показанный путь является самым обычным, но
другая система или конфигурация могут означать другой путь. Обратите внимание, что вам необходимо
отредактируйте все файлы сценариев, чтобы они имели одинаковый правильный путь perl.
Совет 7.2: Perl-путь в порядке?
Читатели с Windows, установившие Perl в соответствии с рекомендациями, приведенными в