Foros del Web » Programando para Internet » PHP »

leer de fichero

Estas en el tema de leer de fichero en el foro de PHP en Foros del Web. Hola buenas tengo un fichero con informacion con el siguiente esquema --- titulo informacion --- titulo informacion --- ... el titulo es solo una linea ...
  #1 (permalink)  
Antiguo 09/02/2012, 13:18
 
Fecha de Ingreso: marzo-2009
Mensajes: 24
Antigüedad: 15 años, 7 meses
Puntos: 2
Pregunta leer de fichero

Hola buenas

tengo un fichero con informacion con el siguiente esquema
---
titulo
informacion
---
titulo
informacion
---
...

el titulo es solo una linea pero la informacion son varias lineas.

y lo que quiero hacer es buscar el titulo y que me muestre la informacion hasta que encuentre los guiones.
como lo podria hacer porque e probado ir leyendo linea por linea y comparar y con ereg pero o me dan problemas o el resultado no es el que quiero.


gracias
  #2 (permalink)  
Antiguo 09/02/2012, 13:37
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 9 meses
Puntos: 53
Respuesta: leer de fichero

Podrias colocar el codigo para darnos una idea de como lo haces
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #3 (permalink)  
Antiguo 09/02/2012, 14:06
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: leer de fichero

Puedes hacer algo así:

Código PHP:
Ver original
  1. <?php
  2. $buscar = 'titulo1';
  3.  
  4. $f = file('test.txt');
  5. $f = array_map('trim', $f);
  6. $filas = count($f);
  7. $inicio = array_search($buscar, $f);
  8.  
  9. if ($inicio !== false) {
  10.     for ($i = $inicio+1; $i < $filas; $i++) {
  11.         if ($f[$i] !== '---') {
  12.             echo $f[$i] . ' ';
  13.         } else {
  14.             break;
  15.         }
  16.     }
  17. } else {
  18.     echo 'No se encontro el titulo';
  19. }

Si se tiene un txt con el contenido:

Cita:
---
titulo1
informacion
informacion
informacion
informacion
informacion
informacion
informacion
informacion
---
titulo2
informacion
informacion
informacion
informacion
informacion
informacion
informacion
informacion
informacion
informacion
informacion
---
El resultado sería:

Cita:
informacion informacion informacion informacion informacion informacion informacion informacion
Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 09/02/2012, 14:08
Avatar de zarkiel  
Fecha de Ingreso: febrero-2012
Mensajes: 51
Antigüedad: 12 años, 9 meses
Puntos: 15
Respuesta: leer de fichero

Supongo que es esto lo que quieres:

Archivo de texto:

Código HTML:
Ver original
  1. ---
  2. Titulo1
  3. Información1
  4. 111
  5. 111
  6. ---
  7. Titulo2
  8. Información2
  9. 222
  10. 222
  11. ---
  12. Titulo3
  13. Información3
  14. 333
  15. 333
  16. ---
  17. Titulo4
  18. Información4
  19. 444
  20. 444

Código php:

Código PHP:
Ver original
  1. <?
  2. $lineas = file('datos.txt'); // leemos el archivo por lineas
  3.  
  4. foreach($lineas As $key=>$linea){
  5.     if(preg_match('/---/',$linea)){ // encontramos guiones, empezamos a leer datos
  6.         $titulo = $lineas[$key+1]; // El titulo se encuentra despues de los guiones
  7.         $indexContent = $key+2; // El contenido empieza luego del titulo
  8.  
  9.         // lee el contenido hasta que encuentre otros guiones, o hasta que terminen las lineas
  10.         $contenido = '';
  11.         while(!preg_match('/---/',$lineas[$indexContent]) && $indexContent < count($lineas)){
  12.             $contenido .= $lineas[$indexContent].'<br />'; // guardamos el contenido, agregamos un salto de linea
  13.             $indexContent++;
  14.         }
  15.        
  16.         // imprimimos los datos
  17.         ?>
  18.         <h2><?=$titulo?></h2>
  19.         <p><?=$contenido?></p>
  20.         <?
  21.     }
  22. }
  23. ?>
__________________
« Los deseos pueden hacerse realidad, pero no basta con esperar un milagro, el milagro lo hacemos nosotros... Aquí y ahora »

Etiquetas: fichero
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 22:20.