Foros del Web » Programando para Internet » PHP »

Problemas con "opendir" y "readdir"

Estas en el tema de Problemas con "opendir" y "readdir" en el foro de PHP en Foros del Web. Hola gente, tengo un problema y espero me ayuden. Estoy usando "opendir" para abrir un directorio y "readdir" para leere los archivos que contiene ese ...
  #1 (permalink)  
Antiguo 28/08/2005, 11:14
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 13 años
Puntos: 0
Problemas con "opendir" y "readdir"

Hola gente, tengo un problema y espero me ayuden.
Estoy usando "opendir" para abrir un directorio y "readdir" para leere los archivos que contiene ese directorio, y luego mostrarlos en la pantalla.
El directorio que leo es "images" y los nombres de los archivos que leo son:
foto01.jpg
foto02.jpg
foto03.jpg
foto04.jpg
foto05.jpg
foto06.jpg
foto07.jpg
foto08.jpg
...
foto20.jpg
El problemas es que al leerlos, lo muestra en pantalla en forma desordenada y no en forma correlativa (orden ascentende o descente por ejemplo), y lo que necesito es que lo muestre en orden ascendente o alfabético.
Ayuda por favor, o de que otra manera se puede hace.
Gracias a todos vosotros.
  #2 (permalink)  
Antiguo 28/08/2005, 11:47
Avatar de compositor19  
Fecha de Ingreso: junio-2005
Ubicación: Zaragoza
Mensajes: 215
Antigüedad: 12 años, 5 meses
Puntos: 2
la funcion sort() se usa para ordenar elementos de un array, prueba con eso

salu2
__________________
php user ;)
  #3 (permalink)  
Antiguo 28/08/2005, 12:07
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 13 años
Puntos: 0
Gracias por la respuesta, pero no me que muy claro, por ello si me pueden dar una manito en este ejemplo:
Código PHP:
<?php
if ($gestor opendir('galerias/antes/images')) {
    while (
false !== ($archivo readdir($gestor))) {
        if (
$archivo != "." && $archivo != "..") {
            echo 
"$archivo\n";
        }
    }
    
closedir($gestor);
}
?>
Gracias.
  #4 (permalink)  
Antiguo 28/08/2005, 12:13
Avatar de compositor19  
Fecha de Ingreso: junio-2005
Ubicación: Zaragoza
Mensajes: 215
Antigüedad: 12 años, 5 meses
Puntos: 2
Mira a ver si con este ejemplo se t soluciona, es de una galería de imágenes llamada Thunder:

Código PHP:

$handle
=opendir($dir);
    while(
$file readdir($handle)) {
        if(
is_file($dir.'/'.$file)) {
            
//Busca extensión
            
$dot = (strlen($file) - strrpos($file"."))*(-1);
            
$file_ext substr($file$dot);
            
$file_ext strtolower($file_ext);    
            
//ext = extensión
            
$file_extless str_replace($file_ext,'',$file); //elimina la extensión (reemplaza $file_ext por '')
            
if($file_ext == ".jpg" || $file_ext == ".gif" || $file_ext == ".png" || $file_ext == ".jpeg") {
                if(
$col $max_col) {
                    echo 
'<td><div align="center"><a href="'.$dir.'/'.$file.'"><img src="thumb.php?image='.$dir.'/'.$file.'&w=50"><br />'.$file_extless.'</a></div></td>'."\n";
                    
$col++;
                } else {
                    echo 
'</tr><tr><td><div align="center"><a href="'.$dir.'/'.$file.'"><img src="thumb.php?image='.$dir.'/'.$file.'&w=50"><br />'.$file_extless.'</a></div></td>'."\n";
                    
$col 1;
                }
            
            }
        }
    } 
salu2,
__________________
php user ;)
  #5 (permalink)  
Antiguo 28/08/2005, 12:58
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 13 años
Puntos: 0
No Me Sale, No Se En Que Este Fallando.
  #6 (permalink)  
Antiguo 28/08/2005, 13:01
Avatar de compositor19  
Fecha de Ingreso: junio-2005
Ubicación: Zaragoza
Mensajes: 215
Antigüedad: 12 años, 5 meses
Puntos: 2
has usado la funcion sort() que te dije?

almacena los archivos en arrays y usala ;)

salu2
__________________
php user ;)
  #7 (permalink)  
Antiguo 28/08/2005, 13:54
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 13 años
Puntos: 0
intenté hacerlo en un array, y no me funciona. Que está mal?
Código PHP:
<?php 
if ($gestor opendir('galerias/localCQFPpasado/images')) {
$archivo = array(false !== ($archivo readdir($gestor)));
sort($archivo);
reset($archivo);
    while (
$archivo) { 
        if (
$archivo != "." && $archivo != "..") { 
            echo 
"$archivo\n"
        } 
    } 
    
closedir($gestor); 

?>
  #8 (permalink)  
Antiguo 28/08/2005, 14:55
Avatar de compositor19  
Fecha de Ingreso: junio-2005
Ubicación: Zaragoza
Mensajes: 215
Antigüedad: 12 años, 5 meses
Puntos: 2
array($archivo => readdir($gestor));
__________________
php user ;)
  #9 (permalink)  
Antiguo 28/08/2005, 15:01
Avatar de compositor19  
Fecha de Ingreso: junio-2005
Ubicación: Zaragoza
Mensajes: 215
Antigüedad: 12 años, 5 meses
Puntos: 2
no, espera, lo anterior no, ara m estoy liando. Revisa como se utilizan los arrays
__________________
php user ;)
  #10 (permalink)  
Antiguo 28/08/2005, 15:12
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 13 años
Puntos: 0
compositor19, gracias por responder. Aqui hay un post que habla algo sobre el tema, pero no logro entenderlo sobre los arrays.
Haber si me hechan una manito.

http://www.forosdelweb.com/showthrea...hlight=readdir
  #11 (permalink)  
Antiguo 28/08/2005, 15:37
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 13 años, 5 meses
Puntos: 4
Código PHP:
<?php
if ($gestor opendir('galerias/antes/images')) {
    while (
$archivo readdir($gestor)) {
        if (
$archivo != "." && $archivo != "..") {
            
$archivos[] = $archivo;
        }
    }
    
closedir($gestor);
}
sort($archivos);
for (
$i=0;$i<count($archivos);$i++) echo $archivos[$i]."<br>";
?>
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 20:07.