PHP - Problemas con File

   
Vista:

Problemas con File

Publicado por jmuoz (21 intervenciones) el 30/05/2014 07:28:09
Hola que tal, tengo un codigo donde llamo aun archivo con un file y este segun tengo entendido lo guarda como un arreglo despues de ello lo recorro y obtengo los valores que requiero pero asi mismo necesito crear un nuevo archivo con las limitaciones que le estoy asignando, cuando lo pruebo en el navegador me muestra el archivo tal cual lo delimite pero cuando llega la hora en donde crea el archivo solo me repite el ultimo valor de la condicion que le estoy dando y las demas no las vale y no se que pueda ser porque lo que quiero es guardar las posiciones que me sirven del array en una variable para llamarla y crear el archivo no me sale espero puedan ayudarme dejo el codigo:

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
<?php
$lineas = file('Pruebas/Archivo.txt');
 
foreach ($lineas as $numero => $linea) {
    $numero_linea = $numero + 1;
    //echo "Linea $numero_de_linea:\n".$linea.'<br>';
 
    if ($numero == 0) {                       //Fecha
    	 $li=$lineas[0] = substr($linea,0,6)."\n";
    	 echo $lineas[0];
    }
    if ($numero == 253 ) {                        //Dato2     
    	$li=$lineas[253] = substr($linea, 45,62);
    	echo $lineas[253];
    }
    if ($numero == 255) {                         //Cantidades
    	$li=$lineas[255] =substr($linea,39,54).'<br>'.' &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp ';
        echo $lineas[255];
    }
 
       $archivo = fopen("Pruebas/Archivo2.txt","c+");
   foreach ($lineas as $linea)
    fwrite($archivo, $li);
  fclose($archivo);
 
   }
Espero puedan darme una idea para solucionar esto, saludos y gracias.
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

Problemas con File

Publicado por xve (5515 intervenciones) el 30/05/2014 09:13:20
Hola, creo que te pasa, porque cuando no coincide con tu linea, el sigue escribiendo, ya que la variable $li contiene el ultimo valor... puede ser?

prueba así:
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
30
<?php
$lineas = file('Pruebas/Archivo.txt');
$archivo = fopen("Pruebas/Archivo2.txt","c+");
 
foreach ($lineas as $numero => $linea)
{
	$li="";
 
	$numero_linea = $numero + 1;
	//echo "Linea $numero_de_linea:\n".$linea.'<br>';
 
	if ($numero == 0) {                       //Fecha
		$li=$lineas[0] = substr($linea,0,6)."\n";
		echo $lineas[0];
	}
	if ($numero == 253 ) {                        //Dato2     
		$li=$lineas[253] = substr($linea, 45,62);
		echo $lineas[253];
	}
	if ($numero == 255) {                         //Cantidades
		$li=$lineas[255] =substr($linea,39,54).'<br>'.' &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp ';
		echo $lineas[255];
	}
 
	if($li)
	{
		fwrite($archivo, $li);
	}
}
fclose($archivo);

Coméntanos, ok?
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

Problemas con File

Publicado por jmuoz (21 intervenciones) el 30/05/2014 16:06:40
Gracias funciono a la perfección por eso siempre mandaba los datos del ultimo valor!!, ahora otra cosa que me surgio es darle espacios y saltos de linea al texto que me surgio en el archivo nuevo por que en el codigo puse esto para dar espacio &nbsp pero eso solo lo pone en el navegador y en el archivo tal cual, segun eh investigado puedo utilizar algunas funciones como preg_match, split, explode para poder separar ejemplo con esto" |" o ";" y me pase ala sig linea creo que con \r y me lo muestre en el archivo o me equivoco, creo que seria algo asi:
explode(" | " ,$li);
lo intente pero no me mostro nada.


Gracias por la ayuda me sirvio de mucho , saludos.
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

Problemas con File

Publicado por jmuoz (21 intervenciones) el 30/05/2014 18:42:07
Como puedo separar esta linea de mi archivo txt:
2304140000000008145124

A esta forma:
230414 | 0000000008145124

En un principio pense que con el explode pero no, espero me puedan ayudar, gracias.
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

Problemas con File

Publicado por xve (5515 intervenciones) el 01/06/2014 19:33:47
Con el explode, te parte una cadena por un valor dado, aqui, tienes que añadir un valor en medio de una cadena... Entiendo que siempre tiene que estar en el mismo punto...

Haber si te sirve esto?
1
2
3
4
<?php
$cadena="2304140000000008145124";
echo substr($cadena,0,6)." | ".substr($cadena,7);
?>
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