PHP - Lectura de archivos txt por palabras

 
Vista:

Lectura de archivos txt por palabras

Publicado por Adal (8 intervenciones) el 20/07/2017 16:24:47
hola buen día, soy principiante en php y en una práctica tengo un contratiempo estoy leyendo un archivo .txt con php que estoy almacenando en mysql, mi duda es el cómo poder obtener un registro cada vez que se encuentre cierta palabra en el archivo. eh intentado con la función "explode()" pero no sé si se pueda realizar con un while..
Estoy abriendo el archivo con file.

Espero que me puedan ayudar..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de facundo

Lectura de archivos txt por palabras

Publicado por facundo (185 intervenciones) el 20/07/2017 17:13:18
que palabra exactamente queres que se encuentre? o te referis a cuando se encuentre un espacio (lo que significa que termina la palabra) ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Lectura de archivos txt por palabras

Publicado por Adal (8 intervenciones) el 20/07/2017 17:54:26
la palabra es PN..
Mi archivo de texto tiene todos los registros juntos y lo que identifica a cada registro nuevo es su iniciales de PN, por lo que estoy buscando un ciclo donde cada vez que se encuentre la palabra "PN" se convierta en un registro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Lectura de archivos txt por palabras

Publicado por kip (877 intervenciones) el 20/07/2017 21:08:06
Hola, podrias colocar el codigo que tienes hasta ahora y el posible contenido del archivo ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Lectura de archivos txt por palabras

Publicado por Adal (8 intervenciones) el 20/07/2017 22:17:36
Este es mi código, en el que solo extraigo solo el encabezado del doc. Pero a partir de ahí necesito extraer los registros.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$contenido = file("personafisica.txt");
 
if (!$contenido) {
	echo "No se encuentra ese archivo, verifica su nombre";
}
//arreglo donde se aguardan los datos
foreach ($contenido as $c) {
	//se realiza la rectura del archivo por longitudes con substr
	//SEGMENTO DE ENCABEZADO O INICIO 
	$INTF = substr($c, 0,4);
	$version = substr($c, 4,2);
	$claveUsu = substr($c, 6, 10);
	$nombreUsu = substr($c, 16,16);
	$reservado = substr($c, 32, 2);
	$fecha = substr($c, 34, 8);
	$reservado2 = substr($c,42, 10);
	$InfAdicional = substr($c, 52, 98);
 
intente realizarlo con strpos, pero quiero realizarlo con un ciclo.
 
/*	$newRegis = "PN";
	$posicion = strpos($c, $newRegis);
	if ($posicion === false) {
		echo "La cadena '$newRegis' no fue encontrada en la cadena dada";
	}else{
		echo "La cadena '$newRegis' fue encontrada en la cadena dada";
    	echo " y existe en la posición $posicion"
	}
*/

La información que contiene el archivo es algo asi:
INTF14MI24200001GGG 01300620170000000000 PN07PANTOJA0007GODINEZ0205MARIA0305ELENA0408051019680510PAGE6810050802MX1201FPA13SAN ANGEL S/N0111EL COLORADO0215PUERTO VALLARTA0315PUERTO VALLARTA0403JAL050548265071032210057971202MXPE11AMA DE CASA0012SAN ANGEL SN0230CAMPESTRE LOS ANGELES EL COLOR0315PUERTO VALLARTA0415PUERTO VALLARTA0503JAL1802MXTL02TL0110MI282000010203SMG0408000000150501I0601I0702PL0802MX100400601101M1204158913082710201614080106201715083110201617083006201721059540022058391924002602014308010119004410000008267945090000000004701148020150047.145105954009903FINPN04CARO0008CASTILLO0204JOEL0308SALVADOR0408200419610513CACJ610420EE60802MX1201MPA15JUSTO SIERRA 140106CENTRO0207MASCOTA0307MASCOTA0403JAL050546900071038838604681202MXPE03SEP0010ALLENDE 901802MXTL02TL0110MI282000010203SMG0408013133080501I0601I0702PL0802MX100400481101M1205324941308170220101408291220121508200220101708300620172106100000220532494240532494250214260296430821012013441000000291664509000014637460822042013470553580480296500534.4151061000009903FIN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar