Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/02/2011, 19:35
Avatar de DeeR
DeeR
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 5 meses
Puntos: 17
Respuesta: Buscador de multiples archivos

Hola

No tuve tiempo para analizar profundamente cuál es el matching que estás realizando sobre el nombre del archivo y el string a buscar, pero de todas formas modifique mi pequeño tips Función Recursiva para buscar archivos para que busque si el string aparece más de una vez en el nombre del archivo, de forma recursivo en todos los directorios hijos de la ruta principal.

Código PHP:
<?php
 
// Example recursive function that searches for files in a directory (including subdirectories recursively)
// by deerme.org
 
function search_files$dir , &$files $str )
{
    if (
is_dir($dir))
    {
        if (
$gd opendir($dir))
        {
            while ((
$file readdir($gd)) !== false)
            {
                if ( 
$file != '.' AND $file != '..'  )
                {
                    
// ¿ Dir or File ?
                    
if ( is_dir$dir.'/'.$file ) )
                    {
                        
search_files$dir.'/'.$file $files $str );
                    }
                    else
                    {
                        
// Ready File
                        
if ( is_file$dir.'/'.$file)  )
                        {
                            
//$size = filesize( $dir.'/'.$file );
                            //$md5 = md5_file( $dir.'/'.$file );
                            //$files[ dirname($dir.'/'.$file)."/".$file  ] = filemtime( $dir.'/'.$file  );
                            
if ( substr_count$file $str ) )
                            {
                                
$filesdirname($dir.'/'.$file)."/".$file  ] = filemtime$dir.'/'.$file  );
                            }
                            
                            
                        }
                    }
                }
            }
            
closedir($gd);
        }
    }
}

if ( 
$_REQUEST["path"] and $_REQUEST["search"]  ) 
{
    
$path_search $_REQUEST["path"];
    
$string_search $_REQUEST["search"];
    if ( 
is_dir$path_search ) )
    {
        
$files = array();
        
search_files($path_search$files $string_search );
        
print_r($files);
    }
}
?>
Ejemplo buscar todos los archivos de /var/www (recursivamente) que tenga a lo menos más de una vez el string "gato"

search.php?path=/var/www&search=gato


A si que solo la debes modificar para realizar el matching que quieres.

Saludos.

Saludos

Última edición por DeeR; 17/02/2011 a las 19:36 Razón: :P