Внимание, убедительная просьба к тем, кто использует DNSearch. Мне очень интересно, где и как Вы используете мой скрипт. Код DNSearch не содержит никаких фрагментов spyware, благодаря которым я бы мог получать статистику. И я не собираюсь использовать грязные методы получения статистики в будущем. Но мне очень интересно, где и как DNSearch работает. Так что если Вы где-нибудь его используете, сообщите, пожалуйста, об этом мне. Эта информация нужна только для моего собственного интереса и ни коим образом не будет распространяться без Вашего согласия. Спасибо.
ОСНОВНЫЕ ВОЗМОЖНОСТИ СКРИПТА. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
01. Алгоритм поиска: — поиск работает прямым перебором фалов; не нужно заниматься индексацией; — при отсутствии некоторых данных, скрипт установит значения по умолчанию.
02. Расширенный поиск: — возможность выбора пути для поиска; — возможность выбора логики поиска (и, или и т.п.); — возможность выбора регистра (чувствительный или нет); — выбор режима поиска: + обычный режим (всем известный); + т.н. режим «RegEx» (фраза считается регулярным выражением Perl).
03. Фильтрация поиска: — Возможность гибкой настройки фильтрации поиска. То есть, указать где надо искать, а где нет (при этом можно использовать RegEx для более гибкой настройки).
04. Вывод результатов: — выводимая информация содержит в себе: + путь к найденному файлу; + размер найденного файла; + заголовок из тэга «<title>»; + количество совпадений в файле; + небольшую фразу вокруг найденного текста: — возможно установить её размер (в символах); — очень «умный» алгоритм выделения найденных фраз; + строгое соответствие или нет (как в Яндексе). — ревалентность вывода при сортировке результатов: + строгое соответствие; + количество совпадений; + размер файла; — возможность постраничного вывода результатов.
05. Кэширование: — возможно включить кэширование результатов поиска, при чём есть: + возможность установить директорию кэша; + возможность установить время жизни кэша; + возможность установить максимальный размер кэша; — возможно включить кэширование путей поиска, при чём есть: + возможность установить директорию кэша; + возможность установить время жизни кэша; + возможность установить максимальный размер кэша.
06. Шаблонизация: — Шаблонность скрипта позволяет настроить все выходные сообщения (вплоть до ошибок) очень тонко. Шаблоны хранятся в HTML (и CSS) файлах, что позволит легко их править. — Многоязычный интерфейс.
07. Возможность поиска по любым архивам: — в специальном файле необходимо указать опции и путь к распаковщику; — скрипт распаковывает содержимое архива и ищет в нём; — возможен удалённый просмотр найденных страниц: + специальный скрипт отдаёт необходимые файлы; — возможно установить ограничение на размер распакуемого архива; — возможно установить максимальный размер папки с распакованными архивами; — функция работает на любой платформе.
08. Стандартизация: — Perl-код написан с использованием ключа «-w» и прагмы «use strict;»; — выводимый (X)HTML-код полностью соответствует стандарту XHTML 1.0; — браузерам, которые «понимают» XHTML (Mozilla, Opera, Safari), (X)HTML-код выдаётся с MIME-типом «application/xhtml+xml» (при включённой опции).
09. Юзабилити: — прозрачная, мощная и интуитивно-понятная система позволяет работать людям без большого опыта программирования (новичкам); — удобная, кроссбраузерная (работает в IE, Opera, Mozilla) форма поиска; — удобное подключение через SSI: «<!--#include virtual="/cgi-bin/dnsearch/search.pl?action=form" -->».
10. Другое: — возможность «поиска в найденном» (как в Яндексе).
УСТАНОВКА И НАСТРОЙКА. ~~~~~~~~~~~~~~~~~~~~~~
01. В файлах «search.pl» и «viewer.pl» в 1-й строке установите путь к интерпретатору Perl, (если он отличается от «/usr/bin/perl»).
02. В файле «Conf/DNSconf.pm» установите переменные по Вашему вкусу. В принципе, скрипт самодостаточный и никаких особых настроек не требует. Так что можете смело пропустить этот пункт. Если Вы что-то захотите изменить (или какая-то функция не будет правильно выполняться), то загляните в этот файл. К каждой переменной есть подробный комментарий. Затруднений возникнуть не должно.
Если Вы хотите получить полноценную работу с кириллицей, то раскомментируйте строки № 26,27,28 (в этом районе) в «search.pl». ВНИМАНИЕ! У Вас должны быть установлены соответствующие модули!
03. В файле «Conf/archive.types» содержатся пути к распаковщикам архивов и соответствующие им расширения файлов (можно указывать полное имя). Если в процессе поиска скрипту встретится файл, расширение которого прописано в массиве «@ARCHIVE_FILE» (он находится в файле настроек «Conf/DNSconf.pm»), то скрипт попробует распаковать этот файл с помощью распаковщика для этого расширения, который прописан в файле «Conf/archive.types». После распаковки скрипт будет искать в распакованных файлах (по стандартным правилам).
ВНИМАНИЕ! Изначально DNSearch писался для Денвера, для которого рабочая платформа — «Windows». Именно поэтому, по умолчанию все распаковщики указаны для этой платформы. Если Вы собираетесь использовать скрипт на платформе «*nix», то загляните в файл «Conf/archive.types» — там описаны некоторые распаковщики для «*nix» (и их использование).
04. Закачайте папку «dnsearch» в директорию «cgi-bin» Вашего сайта. Не забудьте, что «*.pl»-файлы желательно закачивать в ASCII-режиме, чтобы обеспечить корректную замену CRLF на LF. О том, как включить этот режим, смотрите документацию по вашему FTP-клиенту.
Всем временным папкам следует сопоставить права доступа 777. Учитывайте тот момент, что понятие права доступа есть только в *nix-системах. Таким образом права доступа следует выставлять только если Вы устанавливаете DNSearch под *nix-платформу. Если же Вы ставите скрипт под Widnows, никаких прав доступа устанавливать не надо.
06. Запустите «http://domain.com/cgi-bin/dnsearch/search.pl». Поисковую форму можно встраивать в страницы с помощью директивы Apache Server Side Includes (SSI): «<!--#include virtual="/cgi-bin/dnsearch/search.pl?action=form" -->». Языковой интерфейс формы (и скрипта) можно установить с помощью опции «lng»: «search.pl?action=form&lng=ru», «search.pl?lng=eng», и т.д. и т.п.
УСЛОВИЯ ИСПОЛЬЗОВАНИЯ. ~~~~~~~~~~~~~~~~~~~~~~
Данный скрипт является абсолютно бесплатным инструментом для поиска. Вы можете использовать этот скрипт, как Вам хочется, кроме: — Вы не можете использовать его в коммерческих целях; — Вы должны сохранять комментарии с копирайтами в коде.
Никакие другие ограничения не накладываются.
Если Вы хотите внести изменения в исходный код, авторы будут рады получить Ваши комментарии и замечания. Приятной работы!
ВОПРОСЫ. ~~~~~~~~
Появляющиеся у Вас вопросы и предложения Вы можете задать на форуме <dklab.ru> в теме <http://forum.dklab.ru/denwer/base/Dnsearch-AScriptOfSearchForDenver.html>. Мы обязательно Вам поможем.
ОТБЛАГОДАРИТЬ АВТОРА. ~~~~~~~~~~~~~~~~~~~~~
Если Вы используете DNSearch, он Вам нравится и у Вас есть желание, то Вы можете помочь мне работать над его усовершенствованием. Есть несколько путей, с помощью которых это можно сделать: — Напишите мне (http://forum.dklab.ru/users/Ant/email/) где и каким образом Вы используете DNSearch. — Напишите мне Ваши мнения/предложения (любые отзывы) касательно DNSearch. — Переведите языковой файл «languages/ru.lng» на язык, перевода для которого ещё не создано и пришлите мне. — Установите на Вашем сайте ссылку на ресурс <http://debugger.ru/>. — Расскажите Вашим знакомым и друзьям о DNSearch. — Установите на Вашем сайте ссылку на сайт Денвера (<http://www.denwer.ru/>). — Рекомендуйте Вашим знакомым и друзьям Денвер. — Перечислите некоторую сумму на один из нижеследующих кошельков WebMoney: + Z744883942015 + R701701195185 + E955357446392
Что бы Вы не сделали из приведённого выше списка, большое Вам спасибо за помощь!
Last edited by Ant on Fri Apr 14, 2006 11:32 pm; edited 19 times in total
* DNSearch 1.2 [2004-06-14] — Наконец-то дошли руки всё отладить. Исправлено несколько грубых ошибок. — Оказалось, что формат CHM так устроен, что в нём могут содержаться вложенные директории. Заточил скрипт под это. — Добавлено кэширование путей поиска. Теперь поиск в одной и той же директории по разным фразам, после кэширования производится на 40 процентов быстрее. Кэш содержится в одном файле. В этом файле может быть закэшировано сколь угодно много путей (вплоть до превышения лимита). Каждый набор путей имеет свою точку отсчёта по времени, после превышения которого (лимита) удаляется.
Last edited by Ant on Wed Jun 29, 2005 1:52 pm; edited 1 time in total
* DNSearch 1.2 [2004-06-26] — Исправлено несколько ошибок (как обычно (-; ). — Отключена буферизация вывода («$|=1;»). Дело в том, что после долгой работы скрипта (более 10 минут) IE, например, не отображал результаты, хотя скрипт полностью завершал работу. После отключения буферизации эта ошибка исчезла. [Владимир Палант, Юрий Насретдинов, Андрей Новиков] — Теперь DNSearch будет искать в любом архиве, к которому укажут необходимый распаковщик. Всё достаточно просто настраивается. Функция работает на разных платформах (конечно, нужны соответствующие распаковщики). В «стандартной» поставке в скрипт включены три утилиты для распаковки файлов: «unrar.exe» и «unzip.exe» для «Win»- и «arCHMage» для «*nix»-платформы. В «денверовской» версии предположительно останется только «unzip.exe» (слишком много места эти утилиты требуют, к сожалению). — Возможность указывать максимальный размер распаковываемых архивов. Архивы, размер которых превысит предел, будут пропускаться. [Юрий Насретдинов] — Разноцветная подсветка слов при просмотре распакованных архивов. [Rumata] — DNSearch проверен в работе на платформе Linux Mandrake 9.1. Проблем не было. Даже в тамошнем браузере «Konqueror» всё отобразилось отлично. Всё штатно. Можно смело использовать DNSearch на хостинге с «*nix»-платформой. — Новый, улучшенный дизайн вывода результатов. — Все настройки вынесены в отдельный файл: «Conf/DNSconf.pm». Так удобнее.
P.S. Сегодня (точнее, вчера уже по тамошнему времени) Голландцы выиграли у Шведов по пенальти (счёт в основное время: «0:0»). По мне — так объявить, что игра «Португалия — Англия» была финальной и выдать главный приз Португалии. Давно я не видел ТАКОГО футбола. Браво! Ну всё, заканчиваю оффтоп. (-;
Last edited by Ant on Wed Jun 29, 2005 1:46 pm; edited 2 times in total
* DNSearch 1.2 [01-07-2004] — Начато официальное ведение «списка изменений». Какие изменения я вспомнил — те законспектировал. Многие события остались за кулисами. Впредь всё будет чётко фиксироваться. [Дмитрий Кóтеров] — Добавлена надпись «Пожалуйста, ждите.» во время поиска. [Дмитрий Кóтеров] — После поиска, в форме сохраняются значения всех полей (JS). — Добавлено большое количество mime-типов для «viewer.pl». [Дмитрий Кóтеров] — Если для файла не будет найден mime-тип, то установится умолчательный «text/ plain». [Дмитрий Кóтеров] — Блокировка (flock) файлов перед записью. [Дмитрий Кóтеров]
* DNSearch 1.2 [24-09-2004] — Отправка XTHML-кода браузеру как «application/xhtml+xml», если браузер знает этот формат. Если нет, то данные отправляются как «text/html». Современные браузеры, поддерживающие «application/xhtml+xml»: MZ, NN, Opera. Зачем нужна такая отправка XHTML: <http://hixie.ch/advocacy/xhtml>. — Сжатие результатов (только результатов) поиска перед их отправкой браузеру с помощью Gzip. Для работы необходимы следующие модули: strict, warnings, CGI, Carp, IO::Zlib. Если какого-то модуля не окажется в системе, сжатие не будет производится (исключительной ситуации не будет). — Подправлены JS-скрипты для совместимости с такими браузерами, как Firefox. [Илья Лебедев] — Небольшие косметические изменения.
* DNSearch 1.3 [2004-12-10] — Теперь самую последнюю версию DNSearch можно всегда получить по адресу: <http://debugger.ru/download/scripts/dnsearch/latest/>. [Дмитрий Кóтеров] — Добавлена помощь к поиску. [Пaвел Koлабухов] — Решена проблема с ссылками на локальные файлы в MZ. [juvio, Дмитрий Кóтеров] — Ранее файл с кэшем мог использоваться до того, как закончится текущий поиск, и все данные будут корректно записаны. Теперь это невозможно. — Значительно улучшены шаблоны вывода. [Пaвел Koлабухов] — По некоторым соображениям пока пришлось отказаться от сжатия данных (Gzip). — Улучшен случайный выбор названиий для имён файлов с кэшем. — Теперь пути для поиска прописываются в файле конфигураций: Conf/DNSconf.pm, а не в файле-шаблоне «form.html». Во-первых, так удобнее, а во-вторых, этот приём поможет защититься от неразумных хакеров. — Улучшен выбор выдачи браузеру содержимого как XHTML. [Владимир Палант] — Теперь при выборе режима «RegEx», ненужные опции устанавливаются в disabled. — Исправлено несколько грубых ошибок.
* DNSearch 1.3 [2005-02-12] — Исправлен баг, который приводил к выводу сообщения об ошибке до заголовков. — Исправлена ошибка, которая приводила к невозможности поиска по «0». [juvio] — Введена проверка кеша на предмет дублирования. При необходимости дубликаты удаляются. — Значительно улучшены шаблоны вывода. ВНИМАНИЕ! Новые шаблоны несовместимы со старыми версиями! Будьте внимательны при обновлении DNSearch. — Добавлено больше комментариев для хеша «%PATHS» и функции «templatesParser». [Дмитрий Кóтеров] — Добавлен контроль за количеством копий одновременно работающих процессов. По умолчанию он выключен. Включается в файле настрок «DNSconf.pm». — Автоопределение текущей буквы диска в файле «DNSconf.pm». Только для Win32. [Дмитрий Кóтеров] — Оказалось, что Kaspersky Anti-Hacker блокирует обращение к локальным ссылкам (вида «file:///») даже не занося при этом никаких записей в журнал. Добавил предупреждение об этом. [juvio] — Мелкие косметические изменения. — Обновление предыдущей версии DNSearch (1.3 [2004-12-10]) в Денвере. [Дмитрий Кóтеров]
* DNSearch 1.4 [2005-06-27] — Реализован многоязычный интерфейс. ВНИМАНИЕ! В связи с этим дополнением, все шаблоны, часть программного кода не совместимы со старыми версиями DNSearch. [Игорь Варфоломеев, baev, Евгений Галашин] — Иправлена ошибка работы опции «Регистр» в *nix. [Игорь Варфоломеев, Дмитрий Кóтеров] — Теперь, по умолчанию, страницы выдаются как «text/html», даже если браузер поддерживает XHTML. Это связано с тем, что программисты не задумываются о правильном XHTML-коде и вставляют в шаблоны скрипта код, не соответствующий стандарту XHTML. Однако весь выходной код DNSearch по-прежнему соответствует стандарту, а включить поддержку последнего можно через переменную «$XHTML» в «DNSconf.pm». — Мелкие косметические изменения.
* DNSearch 1.4 [2006-04-15] - Попытка определения буквы диска в файле конфигурации «DNSconf.pm» на *nix- подобных системах могла вызвать битую кодировку выходящих данных. Добавил определение платформы Win32. [Сергей П <http://www.pavel-ko.net>] - В результаты попадали только те документы, в которых было совпадение между тегами <body> и </body>. Совпадения между тегами <tytle> и </title> не попадали в результат, т.е. страницы не попадали в результаты, если искомый текст находится только в заголовке. Исправил. [Alik]
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.