Foros del Web » Programando para Internet » PHP »

buscador de archivos

Estas en el tema de buscador de archivos en el foro de PHP en Foros del Web. buenos dias tengo un problema ! tengo que hacer un buscador con php que con solo ingresar el nombre del documento me abra el archivo ...
  #1 (permalink)  
Antiguo 16/05/2012, 09:36
 
Fecha de Ingreso: abril-2012
Mensajes: 93
Antigüedad: 12 años
Puntos: 0
Exclamación buscador de archivos

buenos dias tengo un problema ! tengo que hacer un buscador con php que con solo ingresar el nombre del documento me abra el archivo .pdf que se encuentra almacenado en el disco duro esta en directorios y subdirectorios(año, mes, tipo y ya adentro vienen los archivos) son muchas subcarpetas no se si sea mejor poner todos los documentos en un solo directorio y asi con solo ingresar su nombre los busque mas rapido si alguien me pudiera ayudar u orientar la vdd no se nada de php !!!!! vi las variables opendir para abrir directorios para nada concreto, seria algo asi como una busqueda relativa poner la direccion de donde se encuentran los documentos y con lo que ingrese el usuario hacer la busqeuda en sus subirectorios espero respuesta por favor me urge!!
  #2 (permalink)  
Antiguo 16/05/2012, 12:39
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: buscador de archivos

Primero que todo si no sabes de PHP te recomiendo que empieces a leer el manual, porque hagamos lo que hagamos no vas a entender nada de nada.

Segundo para que te hagas una idea de lo que tienes que hacer (que no vas a entender nada porque no sabes PHP) es que mires como verificar la existencia de un archivo con PHP... te doy un adelanto... la funcion se llama file_exist
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 16/05/2012, 14:02
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: buscador de archivos

Bueno, si nada te damos, seguro que nada entiendes...
Yo utilizo este sistema y me funciona muy bien. Busca en carpetas y subcarpetas.


Código PHP:
$directorio="el/directorio/inicio/de la busqueda";
$archivo="doc123*.pdf"// ..o "doc123.jpg"...
$respuesta=globr($directorio$archivoGLOB_BRACE);

//en respuesta, recibiras un array con los archivos encontrados.


function globr($sDir$sPattern$nFlags NULL) {
   
$aFiles glob("$sDir/$sPattern"$nFlags); 
   
$files getDir($sDir);
   if (
is_array($files)) {
       foreach( 
$files as $file ) {
           
$aSubFiles globr($file$sPattern$nFlags);
           
$aFiles array_merge($aFiles,$aSubFiles);
       }
   }
   return 
$aFiles;
}

function 
getDir($sDir) {
   
$i=0;
   if(
is_dir($sDir)) {
       if(
$rContents opendir($sDir)) {
           while(
$sNode readdir($rContents)) {
               if(
is_dir($sDir.'/'.$sNode )) {
                   if(
$sNode !="." && $sNode !="..") {
                       
$aDirs[$i] = $sDir.'/'.$sNode ;
                       
$i++;
                   }
               }
           }
       }
   }
   return 
$aDirs;



Salud!...y dale karma al compañero.
  #4 (permalink)  
Antiguo 16/05/2012, 17:59
 
Fecha de Ingreso: abril-2012
Mensajes: 93
Antigüedad: 12 años
Puntos: 0
Respuesta: buscador de archivos

Cita:
Iniciado por oscartt67 Ver Mensaje
Bueno, si nada te damos, seguro que nada entiendes...
Yo utilizo este sistema y me funciona muy bien. Busca en carpetas y subcarpetas.


Código PHP:
$directorio="el/directorio/inicio/de la busqueda";
$archivo="doc123*.pdf"// ..o "doc123.jpg"...
$respuesta=globr($directorio$archivoGLOB_BRACE);

//en respuesta, recibiras un array con los archivos encontrados.


function globr($sDir$sPattern$nFlags NULL) {
   
$aFiles glob("$sDir/$sPattern"$nFlags); 
   
$files getDir($sDir);
   if (
is_array($files)) {
       foreach( 
$files as $file ) {
           
$aSubFiles globr($file$sPattern$nFlags);
           
$aFiles array_merge($aFiles,$aSubFiles);
       }
   }
   return 
$aFiles;
}

function 
getDir($sDir) {
   
$i=0;
   if(
is_dir($sDir)) {
       if(
$rContents opendir($sDir)) {
           while(
$sNode readdir($rContents)) {
               if(
is_dir($sDir.'/'.$sNode )) {
                   if(
$sNode !="." && $sNode !="..") {
                       
$aDirs[$i] = $sDir.'/'.$sNode ;
                       
$i++;
                   }
               }
           }
       }
   }
   return 
$aDirs;



Salud!...y dale karma al compañero.


hola muchas gracias tengo un codigo que me devuelve un array con todos los archivos que contiene toda la carpeta pero por ejemplo si el ingresa algo asi como: 12345.pdf me mandara todo los archivos de la carpeta y solo quiero el que el puso?? para que lo pueda abrir con este codigo es posible?? te agradeceria mucho
  #5 (permalink)  
Antiguo 17/05/2012, 01:41
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: buscador de archivos

Con este código, si pones $archivo='12345.pdf' te va a buscar todos los 12345.pdf a partir del directorio indicado.

espero haberte entendido.

Salud!
  #6 (permalink)  
Antiguo 17/05/2012, 07:02
 
Fecha de Ingreso: abril-2012
Mensajes: 93
Antigüedad: 12 años
Puntos: 0
Respuesta: buscador de archivos

Cita:
Iniciado por oscartt67 Ver Mensaje
Con este código, si pones $archivo='12345.pdf' te va a buscar todos los 12345.pdf a partir del directorio indicado.

espero haberte entendido.

Salud!
hola buenos dias mira tengo lo siguiente en html que seria como que el campro para ingresar el dato a buscar

<center><b><font color="black">BUSQUEDA DE CHF'S</b></center>

<form method="post" action="buscar3.php">
<center><b><font color="black">No. de Serie:</font><input type="text" name="busqueda" /> <p /></b><center>
<center><input type="submit" value="buscar"></center>

</form>

la variable para la busqueda es "busqueda" y tendria el php por ejemplo como tu lo tienes asi??

Código PHP:
$directorio="el/directorio/inicio/de la busqueda"
$archivo="*$_POST["busqueda"].pdf"// ..o "doc123.jpg"... 
$respuesta=globr($directorio$archivoGLOB_BRACE); 

//en respuesta, recibiras un array con los archivos encontrados. 


function globr($sDir$sPattern$nFlags NULL) { 
   
$aFiles glob("$sDir/$sPattern"$nFlags);  
   
$files getDir($sDir); 
   if (
is_array($files)) { 
       foreach( 
$files as $file ) { 
           
$aSubFiles globr($file$sPattern$nFlags); 
           
$aFiles array_merge($aFiles,$aSubFiles); 
       } 
   } 
   return 
$aFiles


function 
getDir($sDir) { 
   
$i=0
   if(
is_dir($sDir)) { 
       if(
$rContents opendir($sDir)) { 
           while(
$sNode readdir($rContents)) { 
               if(
is_dir($sDir.'/'.$sNode )) { 
                   if(
$sNode !="." && $sNode !="..") { 
                       
$aDirs[$i] = $sDir.'/'.$sNode 
                       
$i++; 
                   } 
               } 
           } 
       } 
   } 
   return 
$aDirs

ESPERO ME PUEDAS CONTESTAR
  #7 (permalink)  
Antiguo 18/05/2012, 11:34
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: buscador de archivos

Hola Fabian. Disculpa la demora en la contestación..

$archivo="*".$_POST["busqueda"]."pdf";

pongamos que $_POST["busqueda"]="abc1234"
Entonces, si le pones el asterisco delante, te va a buscar cualquier pdf de cualquier directorio que acabe en abc123.pdf.
Si no le pones el asterisco, te va a devolver solo los archivos abc123.pdf. Si solo hay uno, pues uno te devuelve.
Y eso si, recuerda que siempre te devolverá un array.

Saludos.
  #8 (permalink)  
Antiguo 18/05/2012, 23:51
 
Fecha de Ingreso: abril-2012
Mensajes: 93
Antigüedad: 12 años
Puntos: 0
Respuesta: buscador de archivos

Cita:
Iniciado por oscartt67 Ver Mensaje
Hola Fabian. Disculpa la demora en la contestación..

$archivo="*".$_POST["busqueda"]."pdf";

pongamos que $_POST["busqueda"]="abc1234"
Entonces, si le pones el asterisco delante, te va a buscar cualquier pdf de cualquier directorio que acabe en abc123.pdf.
Si no le pones el asterisco, te va a devolver solo los archivos abc123.pdf. Si solo hay uno, pues uno te devuelve.
Y eso si, recuerda que siempre te devolverá un array.

Saludos.
lo intentare ahora mismo pero dices que manda un array y si el usuario quiere ver la informacion del pdf se puede ver?? o hacer el array como un link que dal darle cliick abra el pdf no sabes eso??? muchas gracias por tu respuesta!!!!
  #9 (permalink)  
Antiguo 19/05/2012, 02:32
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: buscador de archivos

Te dejo el ejemplo. Tómalo como una guia y no como código estricto. Ajústalo a tus necesidades.

Código PHP:
$directorio="el/directorio/inicio/de la busqueda";  
$archivo="*$_POST["busqueda"].pdf"// ..o "doc123.jpg"...  
$respuesta=globr($directorio$archivoGLOB_BRACE);
$rutaweb="http://www.tuweb.com";
foreach (
$respuesta as $arch){
   echo 
"<a href='$rutaweb/$arch' target='-blank'>abrir archivo</a>";

Salud!
  #10 (permalink)  
Antiguo 19/05/2012, 18:01
 
Fecha de Ingreso: abril-2012
Mensajes: 93
Antigüedad: 12 años
Puntos: 0
Respuesta: buscador de archivos

Cita:
Iniciado por oscartt67 Ver Mensaje
Te dejo el ejemplo. Tómalo como una guia y no como código estricto. Ajústalo a tus necesidades.

Código PHP:
$directorio="el/directorio/inicio/de la busqueda";  
$archivo="*$_POST["busqueda"].pdf"// ..o "doc123.jpg"...  
$respuesta=globr($directorio$archivoGLOB_BRACE);
$rutaweb="http://www.tuweb.com";
foreach (
$respuesta as $arch){
   echo 
"<a href='$rutaweb/$arch' target='-blank'>abrir archivo</a>";

Salud!

muchas gracias eee por la gran ayuda que me as brindado ahora lo intentare!! espero que me salga ya que es proyecto para poder acabar una parte de mis estudios te as portado a todo dar muchas gracias de verdad
  #11 (permalink)  
Antiguo 20/05/2012, 01:16
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: buscador de archivos

venga, si tienes algun problema, aquí estamos.

Salud y suerte con tu proyecto!
  #12 (permalink)  
Antiguo 22/05/2012, 14:37
 
Fecha de Ingreso: abril-2012
Mensajes: 93
Antigüedad: 12 años
Puntos: 0
Respuesta: buscador de archivos

Cita:
Iniciado por oscartt67 Ver Mensaje
venga, si tienes algun problema, aquí estamos.

Salud y suerte con tu proyecto!
hola amigo no pude hacer funcionar tu codigo :S !! y pues encontre otro que me arroja las direcciones de todos los archivos que tengo en mis subcarpetas ahora solo quiero declarar algo asi como que me compare el array con lo que pide y de ahi ejecutarlo esrtoy pensando en una condicion como vez :)

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 

    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 ); 
                    } 
                    else
                    { 
                        
// Ready File 
                        
if ( is_file$dir.'/'.$file)  ) 
                        { 
                            
//$size = filesize( $dir.'/'.$file ); 
                            //$md5 = md5_file( $dir.'/'.$file ); 
                            
$filesdirname($dir.'/'.$file)."/".$file  ] = filemtime$dir.'/'.$file  ); 
                        } 
                    } 
                } 
            } 
            
closedir($gd); 
        } 
    } 

 
 
$files = array(); 
search_files("C:\Users\Fabian\Documents\CHFS",$files ); 
print_r($files); 
?>
espero me puedas ayudar se que soy muy latoso

Etiquetas: buscadores, variables, usuarios
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 11:38.