Ver Mensaje Individual
  #9 (permalink)  
Antiguo 16/11/2008, 03:34
Avatar de Deschamps
Deschamps
 
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: meter datos de un directorio en un array

Cita:
(..) Si tienes alguna sugerencia mas, soy todo "oidos" (..)
Pues en realidad... sí. Un par:

Supón que al evaluar las condiciones iniciales, la cadena existe como directorio pero por alguna razón no puedes abrir el gestor de directorio (es decir, evalúa como 'cierto' la primera condición, pero evalúa como 'falso' la segunda por problemas de permisos o un error en el sistema de archivos del sistema). En ese caso, estarían ejecutándose instrucciones que no deberían ejecutarse. Para evitarlo, el segundo 'if' debería incluir también esas instrucciones. De hecho, podrías agrupar ambas condiciones con un 'Y' lógico en un único condicional.

Por otro lado (y ésta ya es sólo una cuestión de gustos), no hay necesidad de contar los elementos del array y definir un bucle 'for' para procesar cada elemento. Podrías ahorrarte esa instrucción (el 'count') si utilizaras una estructura 'foreach' o un 'while' para recorrer el array.

Un saludo.

Edito: Un par de apreciaciones más, en las que no había caído antes (espero que lo interpretes como sugerencias, no como críticas ):

- Si el objetivo es guardar en $ficheros solamente archivos (excluyendo directorios) el condicional que usas para ir añadiendo los elementos al array deberías modificarlo por alguna otra función (por ejemplo, is_file).

- Además, los criterios de ordenación quizás debas tenerlos en cuenta. Me explico: si en un directorio tienes archivos como: texto1.txt, texto2.txt, Texto3.txt y texto10.txt (con minúsculas, mayúsculas, números, etc), la función 'sort' los ordenaría de este modo:

Código:
Texto3.txt
texto1.txt
texto10.txt
texto2.txt
... dando prioridad a las mayúsculas y ordenando estrictamente por orden lexicográfico. Si lo que quieres es que el array siga una ordenación "natural" (sin tener en cuenta mayúsculas y minúsculas, e interpretando los números según lo harías tú), deberías echar un vistazo a la función natcasesort u otras análogas. En este caso, con esa función la salida sería:

Código:
texto1.txt
texto2.txt
Texto3.txt
texto10.txt
Otro saludo.

Última edición por Deschamps; 16/11/2008 a las 08:57