Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/03/2007, 08:59
Avatar de DeeR
DeeR
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Re: buscar archivos en una carpeta con php

Cita:
Iniciado por trasmaster Ver Mensaje
si que se pero no tengo ni idea de como hacer eso, si me ayudas te lo agrdeceria.
saludo
Desconosco si PHP trae alguna funcion para la busquedad de Archivos, lo que puedes hacer es realizar algun algoritmo iterativo que busque en los directorio hasta encontrar el archivo buscado.

Asi que me di la lata, de hacer una funcion recursiva, la cual buscar en el directorio los archivo y sus subdirectorios (recursivamente) hasta encontrar el archivo buscado.

Código PHP:
<?

// Busquedad Recursiva

function buscar($dir,&$archivo_buscar)
{   
// Funcion Recursiva
    // Autor DeeRme
    // http://deerme.org
     
if ( is_dir($dir) )
     {
          
// Recorremos Directorio
          
$d=opendir($dir); 
          while( 
$archivo readdir($d) )
          {
            if ( 
$archivo!="." AND $archivo!=".."  )
            {
                 
                 if ( 
is_file($dir.'/'.$archivo) )
                 {
                      
// Es Archivo
                      
if ( $archivo == $archivo_buscar  )
                      {
                           return (
$dir.'/'.$archivo);
                    }
                    
                }
                 
                if ( 
is_dir($dir.'/'.$archivo) )
                {
                     
// Es Directorio
                     // Volvemos a llamar
                     
$r=buscar($dir.'/'.$archivo,$archivo_buscar);
                     if ( 
basename($r) == $archivo_buscar )
                     {
                          return 
$r;
                    }
                     
                     
                }
                  
                  
                
                 
                 
            }
                  
        }
                  
    }
    return 
FALSE;
}

$archivo='whistling.gif';

echo 
buscar('C:/Programas/Internet/EasyPHP1-8/www/aq2chile.cl',$archivo);


?>
A la function debemos entregarle dos parametros, primero el patch base a buscar, luego el $archivo a buscar, como puedes ver la funcion funciona

Ya que quiero buscar el $archivo='whistling.gif' y entrego como base el patch 'C:/Programas/Internet/EasyPHP1-8/www/aq2chile.cl' y como puedes ver el

Como ves en la imagen, la estructura de archivos, se encuentra en la sub de una sub carpeta. Finalmente al ejecutar la funcion devuelve al patch donde se encuentra al archivo
Código:
C:/Programas/Internet/EasyPHP1-8/www/aq2chile.cl/aq2stats/img/emoticons/whistling.gif
PD : Talvez el codigo no es el mas optimo, pero si funciona :P

La function ya la agrege a mi sitio Aqui :P