Foros del Web » Programando para Internet » PHP »

Como mejorar esta funcion?

Estas en el tema de Como mejorar esta funcion? en el foro de PHP en Foros del Web. Estoy tratando de leer imagenes dentro de unas carpetas en mi servidor local. La estructura de las carpetas es de este tipo: Photos --->contiene todas ...
  #1 (permalink)  
Antiguo 20/12/2007, 08:34
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 21 años, 5 meses
Puntos: 2
Como mejorar esta funcion?

Estoy tratando de leer imagenes dentro de unas carpetas en mi servidor local. La estructura de las carpetas es de este tipo:

Photos --->contiene todas las demas carpetas
Photos/categ1 ---> contiene las carpetas que corresponden a la categoria 1, son varias categorias.

Photos/categ1/subcateg1 --->contiene una carpeta por cada usuario registrado, son varias subcategorias.

Photos/categ1/subcateg1/usuario1 --->contiene las imagenes que corresponden a ese usuariom, son varios usuarios.

Ahora bien, he probado este codigo:

Código PHP:
<?php
                        $dir 
opendir("photos");

                        while ((
$file readdir($dir)) !== false)
                          {
                          echo 
"filename: " $file "<br />";
                          }
                        
                        
closedir($dir);
                    
?>

pero solo me lee hasta categ1 (quiero decir solo lee las carpetas que estan dentro de Photos, pero no lee las carpetas y archivos que estan dentro de las demas subcarpetas).

como se puede solucionar esto?
  #2 (permalink)  
Antiguo 20/12/2007, 08:45
 
Fecha de Ingreso: junio-2006
Mensajes: 270
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Como mejorar esta funcion?

Código:
<?php

// Sample function to recursively return all files within a directory.
// http://www.pgregg.com/projects/php/c...e_readdir.phps

Function listdir($start_dir='.') {

  $files = array();
  if (is_dir($start_dir)) {
    $fh = opendir($start_dir);
    while (($file = readdir($fh)) !== false) {
      # loop through the files, skipping . and .., and recursing if necessary
      if (strcmp($file, '.')==0 || strcmp($file, '..')==0) continue;
      $filepath = $start_dir . '/' . $file;
      if ( is_dir($filepath) )
        $files = array_merge($files, listdir($filepath));
      else
        array_push($files, $filepath);
    }
    closedir($fh);
  } else {
    # false if the function was called with an invalid non-directory argument
    $files = false;
  }

  return $files;

}

$files = listdir('.');
print_r($files);
?>
En la pagina de php tienes post de gente que postea metodos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:27.