Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Libraries > File_Archive


Автор: flashaa 27.3.2008, 16:01
Документация: http://pear.php.net/package/File_Archive/docs
В библиотеку входит модуль, считывающий файлы, фильтрующий и пишуший.
Меня интересует фильтрование. Например я могу получить файлы и отфильтровать их по именам.
Задача в том, что мне надо узнать ИМЕНА фильтруемых файлов, т.е. отброшенных при фильтрации.

Код

File_Archive::extract(
            File_Archive::filter(
                File_Archive::predNot(         
                    File_Archive::predEreg($reg) 
                $src 
            ),
            File_Archive::toOutput()
        );

Автор: Fortop 27.3.2008, 17:12
Сравни входящий и исходящий массивы

Автор: flashaa 27.3.2008, 18:34
Fortop, алгоритм понятен,  где эти массивы были непонятно.
Ключ разгадки - cохранение всех объектов, возвращаемых File_Archive::read().
Затем у каждого File_Archive::read() вызываем метод getFileList, который вернет список всех имен файлов, который ридер считает... Сохраняем все эти имена файлов в отдельный массив, фильтруем повторяющиеся и вот вам массив файлов... Соответственно делаем array_diff всех файлов у ридеров с фильтрацией и файлов у ридеров без фильтрации и будет искомый массив имен файлов

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)