PHP - Como implementar un explode en un ciclo while

 
Vista:

Como implementar un explode en un ciclo while

Publicado por Adal (8 intervenciones) el 24/07/2017 18:53:49
Pretendo separar los registros extraídos de un archivo txt con EXPLODE e implementarlos en un ciclo WHILE para poder realizarle otras funciones.
Pero no sé cómo definir el while (mientras encuentre la palabra del explode se siga ejecutando el while)
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 xve
Val: 3.084
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como implementar un explode en un ciclo while

Publicado por xve (6933 intervenciones) el 24/07/2017 21:51:19
Hola Adal, no te entiendo muy bien... me puedes indicar como seria la cadena y lo que te gustaría que hiciera dentro del bucle?
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

Como implementar un explode en un ciclo while

Publicado por Adal (8 intervenciones) el 25/07/2017 00:36:24
hola buen dia amigo, muy bien, mira tengo un archivo .txt que se conforma de un encabezado y su contenido(registros), esos registros no tienen ni espacios, ni comas ni nada que separe sus campos por lo que con el explode lo que hago es identificar cada registro con sus palabras iniciales "PN", pero al usar explode puedo separar los registros como array, pero quiero implementarlo en un while..
es decir que la condicional del while sea el explode...

Tengo este código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$contenido = file("personafisica.txt");
if (!$contenido) {
echo "No se encuentra ese archivo, verifica su nombre";
}
foreach ($contenido as $c) {
//SEGMENTO DE ENCABEZADO 
$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);
//SEGMENTO DE REGISTROS 
$regis = explode('PN', $c);
echo $regis[1].'<br>';
echo $regis[2];
}

esta es la estructura de mi archivo:(el encabezado y el contenido. Solo son dos registros para el ejemplo.)
INTF14MI28200001SMG 01300620170000000000
PN07PANTOJA0007GODINEZ0205MARIA0305ELENA02MX1201FPA13SAN ANGEL S/N0111EL COLORADO0215PUERTO VALLARTA0315PUERTO VALLARTA0403JAL02MXPE11AMA DE CASA0012SAN ANGEL SN0230CAMPESTRE LOS ANGELES EL COLOR0315PUERTO VALLARTA0415PUERTO VALLARTA0503JAL1802MXTL02TLFIN PN04CARO0008CASTILLO0204JOEL0308SALVADOR0408200419610513CACJ610420EE60802MX1201MPA15JUSTO SIERRA 140106CENTRO0207MASCOTA0307MASCOTA0403JAL02MXPE03SEP0010ALLENDE 901802MXTL02TL00FIN
y lo que pretendo hacer una vez teniendo el while es dividir estos registros por longitudes.
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 xve
Val: 3.084
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como implementar un explode en un ciclo while

Publicado por xve (6933 intervenciones) el 25/07/2017 08:29:55
Hola Adal, con un while no creo que sea la manera correcta... creo que lo mas optimo es utilizar el foreach... algo así:
1
2
3
4
foreach(explode("PN",$contenido) as $linea)
{
	echo "<hr>".$linea;
}

te sirve?
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

Como implementar un explode en un ciclo while

Publicado por Adal (8 intervenciones) el 25/07/2017 18:22:53
no me funciona amigo, me manda un error en la sintaxis del foreach..
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 xve
Val: 3.084
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como implementar un explode en un ciclo while

Publicado por xve (6933 intervenciones) el 25/07/2017 18:47:48
Que error te da?
Yo lo he probado así y me ha funcionado!!!
1
2
3
4
5
6
7
8
<?php
$contenido="PN07PANTOJA0007GODINEZ0205MARIA0305ELENA02MX1201FPA13SAN ANGEL S/N0111EL COLORADO0215PUERTO VALLARTA0315PUERTO VALLARTA0403JAL02MXPE11AMA DE CASA0012SAN ANGEL SN0230CAMPESTRE LOS ANGELES EL COLOR0315PUERTO VALLARTA0415PUERTO VALLARTA0503JAL1802MXTL02TLFIN PN04CARO0008CASTILLO0204JOEL0308SALVADOR0408200419610513CACJ610420EE60802MX1201MPA15JUSTO SIERRA 140106CENTRO0207MASCOTA0307MASCOTA0403JAL02MXPE03SEP0010ALLENDE 901802MXTL02TL00FIN";
 
foreach(explode("PN",$contenido) as $linea)
{
	echo "<hr>".$linea;
}
?>
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

Como implementar un explode en un ciclo while

Publicado por Adal (8 intervenciones) el 28/07/2017 23:31:04
muchas gracias, si me funciono...
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
sin imagen de perfil
Val: 173
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como implementar un explode en un ciclo while

Publicado por Yamil Bracho (884 intervenciones) el 25/07/2017 18:47:59
Rebisa $contenido. Esto funciona
<?php
$pizza = "porcion1 porcion2 porcion3 porcion4 porcion5 porcion6";
foreach(explode(" ", $pizza) as $linea) {
echo $linea . PHP_EOL;
}
?>
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

Como implementar un explode en un ciclo while

Publicado por Adal (8 intervenciones) el 29/07/2017 15:24:07
gracias.. ya me funciono..
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