Методы сканирования каталогов и файлов в PHP

Для сканирования всех каталогов и файлов в PHP вы можете использовать различные методы и функции. Вот несколько примеров:

  1. Рекурсивная итерация каталога:

    function scanDirectories($dir) {
       $result = [];
       $files = scandir($dir);
    
       foreach ($files as $file) {
           if ($file != '.' && $file != '..') {
               $path = $dir . '/' . $file;
               if (is_dir($path)) {
                   $result = array_merge($result, scanDirectories($path));
               } else {
                   $result[] = $path;
               }
           }
       }
    
       return $result;
    }
    
    $directory = '/path/to/directory';
    $files = scanDirectories($directory);

    Этот метод использует рекурсию для сканирования всех каталогов и подкаталогов в данном каталоге.

  2. RecursiveIteratorIterator:

    function scanDirectories($dir) {
       $iterator = new RecursiveIteratorIterator(
           new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS),
           RecursiveIteratorIterator::SELF_FIRST,
           RecursiveIteratorIterator::CATCH_GET_CHILD // Ignore "Permission denied"
       );
    
       $result = [];
    
       foreach ($iterator as $path => $file) {
           if ($file->isDir()) {
               $result[] = $path;
           }
       }
    
       return $result;
    }
    
    $directory = '/path/to/directory';
    $directories = scanDirectories($directory);

    Этот метод использует класс RecursiveIteratorIteratorдля перебора каталогов и подкаталогов.

  3. Функция glob():

    $files = glob('/path/to/directory/*', GLOB_ONLYDIR);

    Функция glob()с флагом GLOB_ONLYDIRможет использоваться для получения всех каталогов по указанному пути.

Это всего лишь несколько примеров методов сканирования каталогов и файлов в PHP. Не забудьте заменить /path/to/directoryфактическим путем, который вы хотите сканировать.