Foros del Web » Programando para Internet » PHP »

Problemas al utilizar opendir y glob

Estas en el tema de Problemas al utilizar opendir y glob en el foro de PHP en Foros del Web. hola amigos espero me puedan ayudar, necesito mediante php leer los archivos y directorios que se encuentran en un directorio principal para este proposito he ...
  #1 (permalink)  
Antiguo 21/10/2013, 22:43
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Problemas al utilizar opendir y glob

hola amigos espero me puedan ayudar, necesito mediante php leer los archivos y directorios que se encuentran en un directorio principal para este proposito he intentado utilizar opendir y glob la ruta del directo es /prueba

pero no logro listar nada
Código PHP:
Ver original
  1. $dir = "/prueba/";
  2. if (is_dir($dir)) {
  3.     if ($gd = opendir($dir)) {
  4.         while (($archivo = readdir($gd)) !== false) {
  5.             echo "nombre de archivo: $archivo : tipo de archivo: " . filetype($dir . $archivo) . "\n";
  6.         }
  7.         closedir($gd);
  8.     }
  9. }

Código PHP:
Ver original
  1. $directory = "/root/Escritorio";
  2. $images = glob($directory . "*");
  3. foreach($images as $image)
  4. {
  5.               echo $archivo = substr($image, 8);
  6.   }



obtengo este error
Cita:
opendir(/prueba/): failed to open dir: Permission denied
el error dice que es por permisos pero estos son los permisos
Cita:
drwxrwxrwx. 2 root root 4096 sep 30 21:11 prueb
estoy trabajando en Centos 6,apache

pregunta opendir y glob pueden abrir un gestor de directorio desde / ? o solo debe desde el servidor web (apache, document root)
  #2 (permalink)  
Antiguo 22/10/2013, 03:56
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 20 años, 3 meses
Puntos: 71
Respuesta: Problemas al utilizar opendir y glob

El error es claro, El usuario que ejecuta el servidor web no tiene acceso a ese directorio.
Si ese directorio prueba/ esta dentro del root del sistema deberás darle permisos de lectura, si está dentro del directorio /www (o el que uses para guardar la página) entonces prueba usando prueba/ en lugar de /prueba/ ya que de esta segunda forma, te vas a la raiz del sistema, y no dentro de /www

santendio?
  #3 (permalink)  
Antiguo 22/10/2013, 04:23
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: Problemas al utilizar opendir y glob

A parte de los problemas de permisos, no seria mas rápido usar

scandir — Enumera los ficheros y directorios ubicados en la ruta especificada
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 22/10/2013 a las 10:04
  #4 (permalink)  
Antiguo 22/10/2013, 07:40
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Problemas al utilizar opendir y glob

quimfv gracias por responder, estoy utilizando scandir pero tengo un inconveniente esta enumerando los directorios ocultos
.
..

como hago para no listar estos dos directorios o archivos?
  #5 (permalink)  
Antiguo 22/10/2013, 10:04
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: Problemas al utilizar opendir y glob

Lee apartir de la posición 2 del array (0=. , 1=.., 2=El primer fichero o directorio)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #6 (permalink)  
Antiguo 22/10/2013, 10:24
 
Fecha de Ingreso: junio-2005
Mensajes: 343
Antigüedad: 19 años, 6 meses
Puntos: 10
Respuesta: Problemas al utilizar opendir y glob

Hola,

Yo creo que el problema es la / del inicio del /prueba/

Eso hace que se vaya a buscar el ROOT del sistema y ahi seguro que el usuario no tiene permisos.

Si se pone prueba/ no debería de haber problema. Yo por eso siempre trabajo con rutas absolutas con ayuda del $_SERVER['DOCUMENT_ROOT']

Etiquetas: opendir
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 08:13.