25-06-2018 11:14

Функции файловой системы PHP: opendir, readdir, closedir

PHP предоставляет программисту возможность навигации по файловой системе сайта для поиска файлов и папок. Особенно актуально использование функций работы с файловой системой для веб-ресурсов, использующих CMS.

Логика и функции PHP для файловой системы

Файловая система представляется как последовательность файлов и папок, находящихся по указанному пути. В зависимости от операционной системы путь записывается через прямой или обратный слэш (/ или ).

Условия (if) на PHP: короткая записьВам будет интересно:Условия (if) на PHP: короткая запись

Вызов функции PHP opendir($cPath) создает ресурс по заданному пути, через который можно последовательно прочитать все файлы и папки, которые там находятся. Функция не является рекурсивной. Чтобы просмотреть по заданному пути всю структуру папок, необходимо писать собственный алгоритм.

В этом примере PHP opendir() «открывает» папку по адресу «корень сайта» + '/MphpObj/'. В цикле применяется функция readdir(), которая последовательно читает все содержимое папки. Использование filetype() в конструкции switch позволяет выводить имена папок в одном стиле, а имена файлов - в другом.

Приведенный пример включает в себя вспомогательный код: переменные $i и $j и переключатель ситуации «if ($j) ...»: через четыре итерации применяется функция rewinddir(), и процесс начинается сначала.

По завершении цикла обработки содержимого заданной папки применяется функция closedir() и ресурс, созданный функцией opendir(), закрывается.

Практика применения

Идеально - не задавать имена в пути, который используется в PHP opendir() function. Функционал должен быть максимально свободен в выборе папки, содержимое которой представляет интерес. Можно начать процесс исследования с корня сайта: «$_SERVER['DOCUMENT_ROOT'] . '/'» и написать рекурсивный просмотр всех папок. Это востребованная задача, особенно для интернет-магазинов.

Сайты на базе популярных систем управления вынуждают разработчиков и владельцев искать и изменять нужную информацию (фото товаров, данные по товарам, парсинг информации и наполнение склада).

Сайты ручной работы могут быть заинтересованы в хранении и чтении информации вне базы данных в обычном текстовом формате.

Программист может писать саморазвивающийся код, когда, в зависимости от условий эксплуатации, требуется изменять файлы *.js, *.css или *.php.

Во всех этих и многих других применениях function PHP: opendir, readdir, rewinddir и closedir позволяют просто и быстро решить поставленную задачу.



Источник