
Рекурсивный обход каталогов на PHP
Понадобилась универсальная функция для рекурсивного сканирования выбранного каталога, но не просто так, а с обработчиком найденных файлов. Вот что у меня получилось:Code (PHP) : Убрать нумерацию
- //--------------------------------------------------------------
- // Функция рекурсивного сканирования каталога
- //--------------------------------------------------------------
- // Параметры:
- // $directory - начальный каталог
- // $callback - функция для обработки найденных файлов
- //--------------------------------------------------------------
- function scan_recursive($directory, $callback=null) {
- // Привести каталог в канонизированный абсолютный путь
- $directory=realpath($directory);
- if ($d=opendir($directory)) {
- while($fname=readdir($d)) {
- if ($fname=='.' || $fname=='..') {
- continue;
- }
- else {
- // Передать путь файла в callback-функцию
- if ($callback!=null && is_callable($callback)) {
- $callback($directory.DIRECTORY_SEPARATOR.$fname);
- }
- }
- if (is_dir($directory.DIRECTORY_SEPARATOR.$fname)) {
- scan_recursive($directory.DIRECTORY_SEPARATOR.$fname, $callback);
- }
- }
- closedir($d);
- }
- }
Code (PHP) : Убрать нумерацию
- // Callback-функция, которая будет принимать имена файлов
- function scan_callback($fname) {
- echo $fname.'<br/>';
- }
- // Вывести список файлов и каталогов
- scan_recursive('C:/some_dir\subfolder/', 'scan_callback');
Просмотров: 3602 | Комментариев: 3
Метки: PHP, полезные функции

Внимание! Статья опубликована больше года назад, информация могла устареть!

Добавить комментарий
Заполните форму для добавления комментария
