Foros del Web » Programando para Internet » PHP »

Buscador de archivos sin BD

Estas en el tema de Buscador de archivos sin BD en el foro de PHP en Foros del Web. Muy buenas, internandome en el tema de php me tope con el siguiente problema, necesito implementar un buscador de archivos(doc, xls y pdf) dentro de ...
  #1 (permalink)  
Antiguo 07/11/2005, 14:46
 
Fecha de Ingreso: junio-2004
Mensajes: 15
Antigüedad: 13 años, 6 meses
Puntos: 0
Busqueda Buscador de archivos sin BD

Muy buenas, internandome en el tema de php me tope con el siguiente problema, necesito implementar un buscador de archivos(doc, xls y pdf) dentro de una carpeta en el servidor de forma remota, ahora bien porq no usar una bd?...pues la idea es q sea mas facil para los usuarios actualizar el contenido de esta pequena biblioteca mediante un ftp y asi se actualize de manera automatica...alguna idea?
  #2 (permalink)  
Antiguo 07/11/2005, 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
Pero .. necesitas buscar en el contenido de esos archivos: .doc, .xls y .pdf .. o sólo por el nombre del archivo y a lo sumo por fechas de creación o edición?

Te hago el comentario por qué .. ese proceso es más pesado para el servidor (en el caso de que lo pudieras hacer cómodamente que no es el caso) .. De hecho .. lo que se suele hacer es tener una aplicación anexa que "indexa" ese contenido de esos documentos y sobre esa indexación (sobre BD) se hace la busqueda . .Es decir . .volvemos a lo mismo => usar base de datos.

Subir archivos vía script PHP que pueda ser gestionado con una BD para añadir una descripción y catalogar al archivo subido puede ser un engorro .. pero debes poner en una balanza si quiers subir archivos donde sólo por ejemplo vas a buscar por su nombre o quieres algo más elavorado. De todas formas .. siempre se puede automatizar o agilizar algunos procesos .. podrías subir lotees de archivos que sean de la misma categoría o con las mismas descripciones en .zip's y tus scripts PHP lo descomprimirían y crearían esos registros en tus BD necesarios .., o también puedes subirlos por FTP y luego dar una "pasada" a esos archivos para ir solicitando esa "descripción" del archivo y/o su categoría correspóndiente .. en fin .. soluciones hay muchas.

Un saludo,
  #3 (permalink)  
Antiguo 07/11/2005, 15:02
 
Fecha de Ingreso: junio-2004
Mensajes: 15
Antigüedad: 13 años, 6 meses
Puntos: 0
Muchas gracias por tu pronta respuesta cluster...bueno eso falto aclarar en mi problema...es tan simple como buscar por el nombre del archivo, no por el contenido...asi creo q la cosa se simplifica mucho...bueno eso para uds los capos jeje por q para mi es medio chino...y eso q programo en C....
  #4 (permalink)  
Antiguo 08/11/2005, 04:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En PHP tines funciones para acceso al sistema de archivos en:

www.php.net/dir

Ahí puedes ver funciones y muchos ejemplos para leer directorios .. y veras como trabajar todo el tema: normalmente, leer cierto directorio dado hacia un array y buscar en ella o directamente según lees el directorio (que se lee secuencialmente) ..

Un saludo,
  #5 (permalink)  
Antiguo 09/11/2005, 16:19
 
Fecha de Ingreso: junio-2004
Mensajes: 15
Antigüedad: 13 años, 6 meses
Puntos: 0
Código:
<?php
$path = "./";

if (strrpos($moverse,'..')) {
   $moverse = str_replace('/..','',$moverse);
   $moverse = substr($moverse,0,strrpos($moverse,'/'));
}

if (strpos($moverse,'..')===false) { 
} else if (strpos($moverse,'..')==0) {
   echo '<span style="font-size: 150%;"><b>Error</b></span>';
   $moverse="";
}

if($moverse) {
   $moverse = $moverse."/";
   if (strpos($moverse,"\'")) { 
     $moverse = str_replace("\'","'",$moverse);
   }
}

echo $moverse."<br/>"."\n";

$handle=opendir($path.$moverse);

while ($file = readdir($handle)) {
   if(is_dir($path.$moverse.$file) && $file != ".") {
       if ($file == ".." && $moverse == "") {
     
       } else {
           $uri=str_replace(" ","%20",$moverse.$file);
           echo '<a href="?moverse='.$uri.'">'.$file.'</a><br/>'."\n";
       }
   } else if ($file != "." && $file != "index.php") {
       $uri=str_replace(" ","%20",$path.$moverse.$file);
       echo '<a href="'.$uri.'">'.$file.'</a><br/>'."\n";
   }
}
?>
gracias a este codigo logro mostrar el contenido del directorio "base" pero la verdad mas alla de eso no se por donde lograr una busqueda, hasta donde entiendo en la variable $path.$moverse.$file esta el archivo pero alli me tranco no se por donde poner la busqueda...la idea seria mandar desde un boton la variable y compararla a la hora de leer el contenido pero nose como extresarlo en php...ayuda
  #6 (permalink)  
Antiguo 10/11/2005, 11:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si el código que usas .. en $file tienes el nombre del archivo a buscar .. tan sólo usalo en tus comparaciones (condicionales) IF()

Sería algo tipo:
Código PHP:
if ($file==$_POST['archivo']){
echo 
"archivo encontrado en:".$path.$moverse.$file;
break;

bajo tu bucle que lee los archivos del directorio/directorios que recorre.

Lo que debes hacer también es ver como trabaja ese código (leer la documentación de PHP te ayudará) .. ver que valores generan esas variables y así podrás saber que tienes que tomar para que comparar ...

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 03:16.