Foros del Web » Programando para Internet » PHP »

ordenar archivos listados

Estas en el tema de ordenar archivos listados en el foro de PHP en Foros del Web. Hola, tengo el siguiente problema: Tengo un script que lista los archivos de un directorio con php, en local los archivos se listan alfabeticamente pero ...
  #1 (permalink)  
Antiguo 12/01/2006, 08:53
mab
 
Fecha de Ingreso: enero-2002
Mensajes: 263
Antigüedad: 15 años, 11 meses
Puntos: 0
ordenar archivos listados

Hola, tengo el siguiente problema:
Tengo un script que lista los archivos de un directorio con php, en local los archivos se listan alfabeticamente pero en el servidor se listan desordenadamente, todavía no puedo detectar que orden utiliza, no es ni por peso , ni por fecha, ni alfabeticamente.
Entonces quisiera saber si hay alguna manera de pedirle al servidor que los ordene alfabeticamente.

Lo que no quiero hacer es un array aparte , porque me consume muchísismos recursos, ya lo probé y es muy lento.

Pensé que por ahi con .htaccess se podría hacer pero no encuentro nada de informacion al respecto. Alguien tiene alguna idea de como resolver esto?

Muchas Gracias
Mario
  #2 (permalink)  
Antiguo 12/01/2006, 10:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Pensé que por ahi con .htaccess se podría hacer pero no encuentro nada de informacion al respecto. Alguien tiene alguna idea de como resolver esto?
Si hay alguna opción de ese estilo .. tendrás que revisar en la configuración de tu servidor HTTP (PHP no hace nada al respecto).

Al leer un directorio con las funciones de PHP .. ordenamientos y demás se han de hacer como ya lo probastes (con arrays y demás ..).

Otra cosa que puedes hacer es usar los comandos própios del S.O. que uses en el servidor para hacer "dir" o "ls" (según S.O.) y obtener su resultado. De hecho tus "ordenes" serán bajo los parámetros que definan esas funciones própias del S.O. .. Con PHP sólo leerías la "salida" que esa ejecución origina.

Con esta técnica dependes mucho del S.O. que use el servidor y de configuración del mismo (de que tengas permisos para ejecutar comandos en el por el usuario que use PHP en ese servidor ...)

Revisa:
www.php.net/exec
www.php.net/system



Un saludo,
  #3 (permalink)  
Antiguo 12/01/2006, 11:47
mab
 
Fecha de Ingreso: enero-2002
Mensajes: 263
Antigüedad: 15 años, 11 meses
Puntos: 0
Cluster, gracias por tu respuesta.

Tenes idea donde puedo cambiar esa directiva, porque tengo acceso total al servidor, lo podría hacer.

Gracias.
Mario
  #4 (permalink)  
Antiguo 12/01/2006, 11:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En principio la directiva principal que podría afectar a que No te funcionen esas funciones (valga al rebundancia) sería el "Safe Mode" (modo seguro) .. pero antes de complicarte con el tema, simplemente prueba dichas funciones.

más información sobre el "Safe Mode":
http://www.php.net/features.safe-mode

Un saludo,
  #5 (permalink)  
Antiguo 12/01/2006, 14:19
mab
 
Fecha de Ingreso: enero-2002
Mensajes: 263
Antigüedad: 15 años, 11 meses
Puntos: 0
Cluster.
Me estoy volviendo loco.
Estuve revisando el httpd.conf y no pude resolver nada.
Al parecer no es el sistema operativo porque si hago un listado de un directorio por consola directamente sobre el servidor, me lo lista alfabeticamente, así que creo que debe ser un problema de php
Ahora estoy revisando si hay algo en el php.ini , pero no encuentro nada.
Que puede ser???
Ya no se mas que hacer!
  #6 (permalink)  
Antiguo 12/01/2006, 14:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No, en la configuración de Apache (de tu servidor HTTP) ni en la de PHP tienes algo para forzar como por defecto las funciones de lectura de archivos van a presentar sus resultados. Eso depende directamente de tu Sistema operativo.

Tampoco puedes decir que si lo haces con los comandos de tu S.O. lo ves ordenado alfabeticamente. (yo realmente no sé que "función" interna lanza al S.O. un uso de las funciones de PHP).

Por cierto .. no has probado a ejecutar tu comando por exec() o system() y funciones afines? ...

Un saludo,
  #7 (permalink)  
Antiguo 12/01/2006, 14:42
mab
 
Fecha de Ingreso: enero-2002
Mensajes: 263
Antigüedad: 15 años, 11 meses
Puntos: 0
No probé con esas funciones porque me siento limitado en como aplicarlas, no conosco linux como para ejecutar programas ni comandos.
Encontré esto en el httpd.conf
IndexOptions FancyIndexing VersionSort NameWidth=*

Podría tener que ver con esto?

Lo increíble es que no logro dar con la lógina del orden que tira.

mirá el link es este :
http://tcom.fsinfo.com.ar/locationre...es/prueba2.php

Una cosa que no entiendo de tu respuesta, vos decis que podría resolverlo modificando algo del httpd.conf o que no?
Gracias
Mario
  #8 (permalink)  
Antiguo 12/01/2006, 14:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por mab
No probé con esas funciones porque me siento limitado en como aplicarlas, no conosco linux como para ejecutar programas ni comandos.
Encontré esto en el httpd.conf
IndexOptions FancyIndexing VersionSort NameWidth=*

Podría tener que ver con esto?

Lo increíble es que no logro dar con la lógina del orden que tira.

mirá el link es este :
http://tcom.fsinfo.com.ar/locationre...es/prueba2.php

Una cosa que no entiendo de tu respuesta, vos decis que podría resolverlo modificando algo del httpd.conf o que no?
Gracias
Mario
No, .. ese se refiere a la hora de que Apache haga un index (listado .. de archivos) automático de lo que tenga en el directorio concreto si tu accedes tipo:

http://www.nose.nose/directorio/
(y no tengas un index.xxx por ahí)

De todas formas ... pruebalo.

En tu listado de archivos no presentas la fecha de creación del archivo y/o ultima modificación .. así que no se vé si ordena por ese criterio o no .. revisalo.

Un saludo,
  #9 (permalink)  
Antiguo 12/01/2006, 14:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Por cierto, por qué no administras tus archivos por scripts PHP que controlen lo que subes .. almacenes en BD esos nombres de archivos (con descripción inclusive y demás) para que luego los presentes como quieras (orden ... por grupos .. etc). Sobre todo para implementar buscadores .. procesos a esas imagenes (thumbnails automáticos) en fin . .un "mundo de posibilidades" si lo gestionas así.

Mucho más óptimo que ir leyendo constantemente los archivos físicos de un directorio o directorios y sus propiedades.

Un saludo,
  #10 (permalink)  
Antiguo 12/01/2006, 14:57
mab
 
Fecha de Ingreso: enero-2002
Mensajes: 263
Antigüedad: 15 años, 11 meses
Puntos: 0
No es ni por creacion, ni modificacion, por ejemplo , hace un rato cree una carpeta que se acomoda en cualquier lugar dependiendo del nombre que le ponga.Si fuese por creacion o modificacion no debería cambiar de hubicacion por cambiarle el nombre.

Bueno, me rindo.

Al menos por hoy...
  #11 (permalink)  
Antiguo 13/01/2006, 06:25
mab
 
Fecha de Ingreso: enero-2002
Mensajes: 263
Antigüedad: 15 años, 11 meses
Puntos: 0
Si si , esa es un buena posibilidad, de hecho estoy pensando en hacerlo con una BD, pero necesitaba algo sencillo para automatizar unos trabajos que me encargaron.Aparte el script lo tengo terminado, solo me faltaba el orden y se complicó todo.Probé con los arrays y no se porque tarda tanto, no funciona bien, tiene que ser algo agil.
Si tuviera PHP5 podría usar scandir...
Y aparte no puedo creer que el servidor ordene así los archivos, seguro que es una directiva mal puesta en algun lugar del server.


Bueno seguiré buscando y probando.Si se te ocurre donde puede estar esa directiva avisame, please.

Saludos y Mil gracias!
Mario
  #12 (permalink)  
Antiguo 13/01/2006, 08:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Yo siempre uso archvios tipo "indice" o bien base de datos (preferentemente esta última opción) ..

En todo sistema el hecho físico de leer una estructura de directorios y sus propiedades siempre demora algo de tiempo .. Mejor trabajar con un "archivo" tipo un ".txt" con esos nombres de archivos, ordenarlo como gustes y de ahí leerlo para ir mostrando tus links hacia tus archivos. El proceso de "indexación" del sitio lo harías sólo una vez (cada vez que actualizes archivos) .. Si usas Base de datos .. mejor todavía, sistema más flexible. De hecho sistemas así hay cientos en la red .. (por si no tienes mucho tiempo para desarrollar el tuyo).

Un saludo,
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:49.