64 votos

PHP Obtener todos los subdirectorios de un directorio dado

¿Cómo puedo obtener todos los sub-directorios de un directorio sin archivos, .(directorio actual) o ..(directorio principal) y, a continuación, utilizar cada directorio en una función?

104voto

ghostdog74 Puntos 86060

usted puede utilizar glob() con GLOB_ONLYDIR opción

o

$dirs = array_filter(glob('*'), 'is_dir');
print_r( $dirs);

67voto

bakkelun Puntos 865

Sry por responder a un viejo post, pero aquí es cómo usted puede recuperar sólo los directorios con GLOB:

$directories = glob($somePath . '/*' , GLOB_ONLYDIR);

19voto

Gordon Puntos 156415

Casi el mismo que en su anterior pregunta:

$iterator = new RecursiveIteratorIterator(
                new RecursiveDirectoryIterator($yourStartingPath), 
            RecursiveIteratorIterator::SELF_FIRST);

foreach($iterator as $file) {
    if($file->isDir()) {
        echo strtoupper($file->getRealpath()), PHP_EOL;
    }
}

Reemplace strtoupper con su función deseada.

11voto

stloc Puntos 123
$dir = new DirectoryIterator($path);
foreach ($dir as $fileinfo) {
    if ($fileinfo->isDir() && !$fileinfo->isDot()) {
        echo $fileinfo->getFilename().'<br>';
    }
}

1voto

Sanaan Barzinji Puntos 29
    <?php
         /*this will do what you asked for, it only returns the subdirectory names in a given          path, and you can make hyperlinks and use them:
             */

      $yourStartingPath = "photos\\";
       $iterator = new RecursiveIteratorIterator( 
            new RecursiveDirectoryIterator($yourStartingPath),  
        RecursiveIteratorIterator::SELF_FIRST); 

       foreach($iterator as $file) { 
         if($file->isDir()) { 
       $path = strtoupper($file->getRealpath()) ; 
    $path2 = PHP_EOL;
    $path3 = $path.$path2;


    $result = end(explode('/', $path3)); 


    echo "<br />". basename($result );
           } 
      } 

        /* best regards,
    Sanaan Barzinji
        Erbil
       */
         ?>

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X