Foros del Web » Programando para Internet » PHP »

readdir pero que no aparezcan "." ni ".."

Estas en el tema de readdir pero que no aparezcan "." ni ".." en el foro de PHP en Foros del Web. ¡Hola! Estoy haciendo pruebas de leer directorios y ficheros para una aplicación que quiero hacer. Tengo este código para sacar un listado de los directorios ...
  #1 (permalink)  
Antiguo 06/10/2008, 05:16
Avatar de Freakme  
Fecha de Ingreso: julio-2007
Ubicación: Portugalete
Mensajes: 97
Antigüedad: 16 años, 9 meses
Puntos: 0
readdir pero que no aparezcan "." ni ".."

¡Hola!
Estoy haciendo pruebas de leer directorios y ficheros para una aplicación que quiero hacer.
Tengo este código para sacar un listado de los directorios y ficheros:

$directorio = "./";
$descriptor = opendir($directorio);
while ($entrada = readdir($descriptor))
{if (is_dir($directorio.$entrada))
{if ($entrada!='./' or $entrada!='../')
{echo "[Directorio] " . $entrada . "<br />";}
}
elseif (is_file($directorio.$entrada))
{echo "[Fichero] " . $entrada . "<br />";}
}
closedir($descriptor);

La línea en rojo la he añadido para que no aparezcan el "." ni el "..", pero no funciona. ¿Alguien puede decirme por qué? ¿y cómo solucionarlo?
¿O al menos cómo puedo hacer que me aparezcan los resultados ordenados de algún modo?

Gracias.
  #2 (permalink)  
Antiguo 06/10/2008, 05:19
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: readdir pero que no aparezcan "." ni ".."

Quita el / . Los nombres de esos directorios son simplemente . y ..
  #3 (permalink)  
Antiguo 06/10/2008, 05:28
Avatar de Freakme  
Fecha de Ingreso: julio-2007
Ubicación: Portugalete
Mensajes: 97
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: readdir pero que no aparezcan "." ni ".."

Gracias, pero lo acabo de probar y sigue sin funcionar.

El problema estaba aquí:

if ($entrada!='.' OR $entrada!='..')

en lugar de "OR" tiene que ser un "AND".

if ($entrada!='.' AND $entrada!='..')

Última edición por Freakme; 06/10/2008 a las 07:05 Razón: encontré la solución
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 17:55.