Ищу скрипт листинга дииректорий с возможностью поиска Но поиск должен происходить по базе данных а не каждый раз по всем папкам (т.к. файлов порядка 20 000), ах да и поиск не должен индексировать содержимое файла, а запоминать только его месторасположение.
Кто-нгибудь может подсказать?
Лагуна, 25.10.2005 - 17:19
функция для рекурсивной выборки, остальное можешь сам написать
CODE
function ListFile($Path,$match=".*") { $FileList = false;
if ($FileHandle = @opendir($Path)) { if ($Path != "") { if (!preg_match("'^.*/|\\$'",$Path)) { $Path .= "\\"; } }
while ($Name = readdir($FileHandle)) { if (($Name != '.') && ($Name != '..')) { if (filetype($Path.$Name) != "file") { $buf = ListFile($Path.$Name,$match); if ($buf) { $FileList = array_merge($FileList,$buf); } } else if (preg_match("/.*\.".$match."/i",$Name)) { $FileList[] = $Path.$Name; } } } closedir($FileHandle); } return $FileList; }
SpiderX, 26.10.2005 - 13:01
Рекурсивно прочитать директорию можно значительно проще:
Но поиск должен происходить по базе данных а не каждый раз по всем папкам (т.к. файлов порядка 20 000)
Вставляй вместо звёздочек функции по работе с БД (делаем загон данных в базу)
CODE
if (is_file($dirname.'/'.$object)) { ****** } if(is_dir($dirname.'/'.$object)) { ****** }
потом пишем отдельный скрипт на выборку результатов поиска из базы.
chupakabra, 26.10.2005 - 15:52
спасибо попробую....
Лагуна, 26.10.2005 - 17:06
что то не понял, чем отличается твоя функция от моей? разве что проверкой is_file, а не filetype.
SpiderX, 27.10.2005 - 20:23
to Лагуна 1. Тем, то работает сразу без доп. настроек. 2. Обладает более конструктивным синтаксисом. 3. Есть возможность отдельно распихивать по базе файлы и директории. 4. Меньше строк кода. 5. В отличии от твоего скрипта мой не загоняет сам себя в базу.
Из минусов есть глюк, что если имя скрипта совпадёт с именем файла, то файл будет проигнорирован:
2 SpiderX Такое ощущение что ты обкурился. 1. Какие это настройки нужны моему скрипту? 2. Что значит конструктивный синтаксис? 3. Моя функция ничего никуда не распихивает, она составляет список файлов и директорий начина с указанного пути, причем можно указать конкретное расширение файла и возвращает массив путей, а что там с ними нужно делать это уже не моя задача, и это есть принцип модульности 4. если я уберу проверку пути и проверку раширения сомневаюсь что у меня будет больше строк 5. еще раз повторяю, это не скрипт, а функция, которая возвращает список, дальше этот список обрабатывается как угодно
SpiderX, 29.10.2005 - 17:53
Прежде чем постить читай правила форума. За такие высказывания полагается понижение в статусе или сразу бан. > 2. Что значит конструктивный синтаксис? Это и значит