Foros del Web » Programando para Internet » PHP »

Expresion regular con Php y texto

Estas en el tema de Expresion regular con Php y texto en el foro de PHP en Foros del Web. Buenas noches, estuve intentando mucho hacer un código que me sirva para un texto. Quiero leer con php un texto (.txt) El cual tiene un ...
  #1 (permalink)  
Antiguo 08/09/2014, 23:10
Avatar de CCB
CCB
 
Fecha de Ingreso: noviembre-2009
Ubicación: Perú
Mensajes: 65
Antigüedad: 14 años, 5 meses
Puntos: 3
Expresion regular con Php y texto

Buenas noches, estuve intentando mucho hacer un código que me sirva para un texto.

Quiero leer con php un texto (.txt)

El cual tiene un formato similiar a esto:
LEY 2005
La Primera ley que ....:

1. Respuesta 1
2. Respuesta 2
3. Respuesta 3
4. Respuesta 4
5. Respuesta 5

Respuesta: 1

Comentario
La respuesta correcta es 1 porque ....

LEY 2012
....

Quisiera tomar todo el bloque que inicia en LEY 20.. y termina un linea antes de la siguiente LEY.

Estoy utilizando esto:

Código PHP:
$file file_get_contents('CONTENIDO.txt'FILE_USE_INCLUDE_PATH);

preg_match_all("|^LEY 20(.*)\n|sU"$file$salidaPREG_PATTERN_ORDER); 
No logro hacer funcionar el codigo, espero puedan ayudarme.
  #2 (permalink)  
Antiguo 09/09/2014, 02:03
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Expresion regular con Php y texto

qué te sale para preg_match_all?
Código PHP:
Ver original
  1. $file = file_get_contents('CONTENIDO.txt', FILE_USE_INCLUDE_PATH);
  2. $result = preg_match_all("|^LEY 20(.*)\n|sU", $file, $salida, PREG_PATTERN_ORDER);
  3. var_dump($result);
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #3 (permalink)  
Antiguo 09/09/2014, 06:04
 
Fecha de Ingreso: abril-2011
Ubicación: Vilcún, cerca de Temuco
Mensajes: 67
Antigüedad: 13 años
Puntos: 5
Respuesta: Expresion regular con Php y texto

Sé que no es la respuesta adecuada, porque lo tuyo es con expresiones regulares, pero a lo mejor te facilita la vida repasar el archivo línea por línea e ir guardando el contenido hasta que aparezca una línea que empieza con "LEY 20".

Podría ser algo como esto (no está revisado):

Código PHP:
Ver original
  1. <?php
  2. $archivo = fopen("CONTENIDO.txt", "r");
  3.  
  4. $items=array();
  5. $item_incompleto="";
  6. $item_completo="";
  7. $fin_item=false;
  8.  
  9. while(!feof($archivo))
  10. {
  11.     if($fin_item){
  12.         $items[]=$item_completo;
  13.         $fin_item=false;
  14.     }
  15.    
  16.     $linea=fgets($archivo). "\n";
  17.    
  18.     if(substr($linea,0,7)=="LEY 20"){
  19.         $fin_item=true;
  20.         $item_completo=$item_incompleto;
  21.         $item_incompleto=$linea;
  22.     }
  23.     else{
  24.         $item_incompleto.=$linea;
  25.     }
  26. }
  27. $items[]=$item_incompleto;
  28.  
  29. fclose($archivo);
  30. ?>

Suerte

Etiquetas: expresiones, regulares
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 19:55.