Foros del Web » Programando para Internet » PHP »

Devolver solo las carpetas.

Estas en el tema de Devolver solo las carpetas. en el foro de PHP en Foros del Web. Hola, He hecho este pequeño script para que me muestre las carpetas de un determinado directorio, por ejemplo " /micarpeta " de mi servidor, pero ...
  #1 (permalink)  
Antiguo 21/06/2006, 05:30
.:Chimera:.
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Devolver solo las carpetas.

Hola,

He hecho este pequeño script para que me muestre las carpetas de un determinado directorio, por ejemplo " /micarpeta " de mi servidor, pero tengo un problema. No solo me muestra las carpetas , sino que me muestra todos los archivos que hay en "/micarpeta" , me salen *.html *.rar , etc. Yo solo quiero que me muestre las carpetas que hay dentro de " /micarpeta ". Espero que me ayudeis.

Este es el script:
Código PHP:
$path "../micarpeta"
$directorio opendir($path);
$carpeta readdir($directorio);  
echo
"<select name=\"listamicarpeta\">";
while (
$carpeta readdir($directorio))
 {
if (
is_dir($carpeta)) continue;
echo 
"<option name=\"$carpeta\" value=\"$carpeta\">$carpeta";
}
closedir($directorio);
 echo
"</select>"

Como vereis las carpetas se me muestran en un formulario, un "select".

Saludos

Última edición por .:Chimera:.; 21/06/2006 a las 06:03
  #2 (permalink)  
Antiguo 21/06/2006, 05:52
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 12 años, 2 meses
Puntos: 18
Prueba así:
Código PHP:
while ($carpeta readdir($directorio))
 {
if (
is_dir($carpeta)) {
echo 
"<option name=\"$carpeta\" value=\"$carpeta\">$carpeta";
}

  #3 (permalink)  
Antiguo 21/06/2006, 05:55
.:Chimera:.
Invitado
 
Mensajes: n/a
Puntos:
No funciona, solo me muestra esto: ..

y ya está, a pesar de que dentro de esta carpeta hay 5 subcarpetas que deseo que me muestre, no hay manera.

Saludos
  #4 (permalink)  
Antiguo 21/06/2006, 06:03
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
prueba asi, lo hice y funciona (bueno.. te mete el directorio ".." pero nada.. eso lo puedes quitar tu:

Código PHP:
$path "."
$directorio opendir($path);
$carpeta readdir($directorio);  
echo
"<select name=\"listamicarpeta\">";
while (
$carpeta readdir($directorio))
 {
 if (
is_dir($carpeta)) echo "<option name=\"$carpeta\" value=\"$carpeta\">$carpeta</option>";
 }
closedir($directorio);
 echo
"</select>"
a ver si te vale, te faltaba el </option> de cierre y sobra el continue;
__________________
ALOZORRO v5.0 (ahora en .es)
  #5 (permalink)  
Antiguo 21/06/2006, 06:06
.:Chimera:.
Invitado
 
Mensajes: n/a
Puntos:
Pues a mi no me funciona, porque solo, SOLO me muestra la carpeta ".." , el resto de carpetas no sale, ???????
  #6 (permalink)  
Antiguo 21/06/2006, 06:11
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
pues que raro.. seguiré investigando...
__________________
ALOZORRO v5.0 (ahora en .es)
  #7 (permalink)  
Antiguo 21/06/2006, 06:14
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
lo raro es que yo tengo hecha una prueba y me sale bien..
__________________
ALOZORRO v5.0 (ahora en .es)
  #8 (permalink)  
Antiguo 21/06/2006, 06:16
.:Chimera:.
Invitado
 
Mensajes: n/a
Puntos:
Pos no se , me has cambiado la ruta de $path , quizás sea porque utilizo una ruta absoluta ??? , no se me ocurre, ................
  #9 (permalink)  
Antiguo 21/06/2006, 06:20
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
a ver.. prueba esto... añades esta funcion:

Código PHP:
function dir_exists($dir_name false$path '') {
   if(!
$dir_name) return false;
   
   if(
is_dir($path.$dir_name)) return true;
   
   
$tree glob($path.'*'GLOB_ONLYDIR);
   if(
$tree && count($tree)>0) {
       foreach(
$tree as $dir)
           if(
dir_exists($dir_name$dir.'/'))
               return 
true;
   }
   
   return 
false;
 } 

y el codigo lo pones asi:

Código PHP:
$path "la ruta"
$directorio opendir($path);
$carpeta readdir($directorio);  
echo 
"<select name=\"listamicarpeta\">";
while (
$carpeta readdir($directorio))
 {
 if (
dir_exists($carpeta,$path)) echo "<option name=\"$carpeta\" value=\"$carpeta\">$carpeta</option>";
 }
closedir($directorio);
 echo
"</select>"
a ver ahora...
__________________
ALOZORRO v5.0 (ahora en .es)
  #10 (permalink)  
Antiguo 21/06/2006, 06:22
.:Chimera:.
Invitado
 
Mensajes: n/a
Puntos:
Vale, ahora si que me muestra el resto de carpetas, jejjeje.

Ahora solo tengo que quitar esto: ".."

Eres un crack, muchas gracias.
  #11 (permalink)  
Antiguo 21/06/2006, 06:22
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 13 años, 1 mes
Puntos: 1
jaja. gracias (na.. busqué codigó por ahi y lo fui aplicando jejeje)
__________________
ALOZORRO v5.0 (ahora en .es)
  #12 (permalink)  
Antiguo 21/06/2006, 10:08
.:Chimera:.
Invitado
 
Mensajes: n/a
Puntos:
Jeje, siento ser pesado, pero ahora alguien me puede decir como quitar el maldito ".." . Esque me sale siempre en primer lugar.

Saludos
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 05:06.