Foros del Web » Programando para Internet » PHP »

lectura de archivos múltiples

Estas en el tema de lectura de archivos múltiples en el foro de PHP en Foros del Web. Hola a todos , me he sumergido en el mundo de php y estoy emocionadísima. Quisiera saber, si alguién me puede ayudar: Quiero buscar una ...
  #1 (permalink)  
Antiguo 29/07/2009, 11:36
 
Fecha de Ingreso: julio-2009
Mensajes: 5
Antigüedad: 14 años, 8 meses
Puntos: 0
Información lectura de archivos múltiples

Hola a todos , me he sumergido en el mundo de php y estoy emocionadísima. Quisiera saber, si alguién me puede ayudar:
Quiero buscar una cadena en múltiples ficheros, todos dentro de la misma carpeta.

Estoy haciendo pruebas, listo el directorio y luego pretendo que me lea los ficheros que hay dentro,
el código:

<?php
//Directorio a leer
$path = "C:\Apache\htdocs\para bego";
//Abrir directorio
$leerdirectorio = opendir($path);
//hacemos un bucle mostrar el contenido
while ($info = readdir($leerdirectorio))
{
// contamos el numero de archivos y
//abrimos archivos
echo "$info<br>";

$total = count($info);
for($i=0; $i < $total; $i++)
{
//mostramos el contenido
chmod($info, 0777);
$archivo = fopen($info,"r" ) or die ("No se pudo abrir el archivo"); ;
{
readfile ($archivo);

}

}

}
//}


fclose ($archivo);
closedir($path);
?>
pero nada me dice:

Warning: fopen(.): failed to open stream: Permission denied in c:\apache\htdocs\practicas\listar_directorio.php on line 18
No se pudo abrir el archivo

Esto me funciona mientras solo quiera abrir un único .txt

Besos a todos

Cuando consiga leer los archivos haré la búsqueda.
  #2 (permalink)  
Antiguo 29/07/2009, 11:45
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: lectura de archivos múltiples

Tienes que evitar leer los primeros dos que son . y .. te sugiero que hagas un if que evite leer esos dos primeros que trae tu while
Código PHP:
Ver original
  1. <?php
  2. //Directorio a leer
  3. $path = "C:\Apache\htdocs\para bego";
  4. //Abrir directorio
  5. $leerdirectorio = opendir($path);
  6. //hacemos un bucle mostrar el contenido
  7. while ($info = readdir($leerdirectorio)) {
  8.   // contamos el numero de archivos y
  9.   //abrimos archivos
  10.   echo "$info<br>";
  11.  
  12.   if($info != "." && $info != ".."){
  13.      chmod($info, 0777);
  14.      $archivo = fopen($info,"r" ) or die ("No se pudo abrir el archivo"); ;
  15.      readfile ($archivo);
  16.   }
  17. }
  18.  
  19. fclose ($archivo);
  20. closedir($path);
  21. ?>
  #3 (permalink)  
Antiguo 31/07/2009, 09:43
 
Fecha de Ingreso: julio-2009
Mensajes: 5
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: lectura de archivos múltiples

Cita:
Iniciado por abimaelrc Ver Mensaje
Tienes que evitar leer los primeros dos que son . y .. te sugiero que hagas un if que evite leer esos dos primeros que trae tu while
Código PHP:
Ver original
  1. <?php
  2. //Directorio a leer
  3. $path = "C:\Apache\htdocs\para bego";
  4. //Abrir directorio
  5. $leerdirectorio = opendir($path);
  6. //hacemos un bucle mostrar el contenido
  7. while ($info = readdir($leerdirectorio)) {
  8.   // contamos el numero de archivos y
  9.   //abrimos archivos
  10.   echo "$info<br>";
  11.  
  12.   if($info != "." && $info != ".."){
  13.      chmod($info, 0777);
  14.      $archivo = fopen($info,"r" ) or die ("No se pudo abrir el archivo"); ;
  15.      readfile ($archivo);
  16.   }
  17. }
  18.  
  19. fclose ($archivo);
  20. closedir($path);
  21. ?>
Vale, he estado mirando y probando todo lo relacionado con directorios y ficheros y arrays, al final he conseguido introducir todos los ficheros de un directorio en un array.
Ahora quiero leer cada uno de esos ficheros pero no me sale.
Ya no se por donde seguir, alquien me puede dar un pequeño empujón?

Os pongo el código que despues de "sangre, sudor y lágrimas" he conseguido hacer:

<?php
#meter datos de un directorio en un array
$dir = "mi directorio";
if (is_dir($dir)) {
if ($gd = opendir($dir)) {
while (($archivo = readdir($gd)) !== false) {
if ($archivo != "." && $archivo != "..") {
$ficheros[] = $archivo;
}
}
}
closedir($gd);
$cont = count($ficheros);
//listo los archivos

for($i = 0;$i < $cont;$i++){

echo $ficheros[$i].'<br />';

}
//Intnto leer el contenido de los archivos

$gestor = fopen($fichero[$i], "r");
$contenido = fread($gestor, filesize($fichero[$i]))
or die ("No puedo abrir el archivo para lectura");
echo $contenido;
fclose($gestor);
}
?>

Yo sigo buceando por la web a ver que encuentro
  #4 (permalink)  
Antiguo 31/07/2009, 09:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: lectura de archivos múltiples

En vez de hacerlo asi

Código php:
Ver original
  1. for($i = 0;$i < $cont;$i++){
  2.  
  3. echo $ficheros[$i].'<br />';
  4.  
  5. }
  6. //Intnto leer el contenido de los archivos
  7.  
  8. $gestor = fopen($fichero[$i], "r");
  9. $contenido = fread($gestor, filesize($fichero[$i]))
  10. or die ("No puedo abrir el archivo para lectura");
  11. echo $contenido;
  12. fclose($gestor);
  13. }

Verifica si este te ayuda
Código PHP:
Ver original
  1. for($i=0; $i<$count; $i++){
  2.     $f = file($fichero[$i]);
  3.     foreach($f as $v){
  4.         echo $v."<br />";
  5.     }
  6. }
  #5 (permalink)  
Antiguo 08/08/2009, 09:04
 
Fecha de Ingreso: julio-2009
Mensajes: 5
Antigüedad: 14 años, 8 meses
Puntos: 0
De acuerdo Respuesta: lectura de archivos múltiples

Bueno, me ha costado pero ya lo he hecho.
He vuelto a cambiar todo porque seguía sin funcionarme, pero al final funciona.
Copio el código por si le interesa a alguien.
Sirve para leer los html que se encuentren en un directorio.
Ahora por a estudiar las expresiones regulares para implementarlo y que busque algo.
Saludos a todos

<?php
#Abrimos el directorio
$path="directorio a examinar";
$dir = opendir($path); #Leemos uno a uno
while($archivo = readdir($dir)){
#Solo vamos a tratar los html
if (strpos($archivo, ".html")){
#leemos todo el contenido del archivo y lo guardamos en una cadena de texto
$contenido = file_get_contents("directorio/$archivo");
echo $contenido;

}
}
?>
  #6 (permalink)  
Antiguo 09/08/2009, 12:17
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: lectura de archivos múltiples

Izaylam chiquilla os oigo hablar en ese idioma que parece chino y no se como voy a poder conseguirlo yo...... A mi me pasa algo parecido a ver si me puedes ayudar tengo una carpeta llena de ficheros PDF y me encantaria que me hiciese la busqueda con una palabra del texto en todos los archivos de esa carpeta. Vosotros sabeis de informatica pero yo en esto me pierdo como nadie jejeje ayudadme porfa me urge un monton.

os dejo mi email: [email protected]

Gracias
  #7 (permalink)  
Antiguo 09/08/2009, 12:35
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: lectura de archivos múltiples

Estimada nika , el manejo de ficheros pdf requiere otro tipo de manejo que el codigo expuesto en este fichero , recuerde que un fichero html no deja de ser texto plano , en cambio un pdf es un archivo considerado como binario , de todos modos hay librerias que se encargan de manejar ficheros pdf , fijese en phpclasses que es un gran repositorio de librerias php , ahi seguramente usted podra encontrar algo ahi , pero la verdad me parece que se va a dificultar si usted no posee conocimientos de php.

Saludos!
  #8 (permalink)  
Antiguo 10/08/2009, 16:55
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 14 años, 8 meses
Puntos: 0
De acuerdo Respuesta: lectura de archivos múltiples

Ademas de en PDF los tengo en WORD asi es mas facil???? por favor ayudame no se como hacerlo.

gracias
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 18:14.