
Problemas al grabar un array modificado a un archivo con fputs
Publicado por Andrea (2 intervenciones) el 19/09/2014 21:50:12
Hola, tengo un problema con un array que cargo desde un archivo y despues lo modifico.
Cuando lo grabo me queda sin el salto de linea, es un archivo de texto donde grabo con fputs.
Primero lo leo al archivo donde cada linea 3 campos.
El primero,es la hora que varia de 00 a 23 y despues son dos valores.
Cuando lo leo uso el explode porque estan separados por comas.
Despues modifico un dato de la tabla o array por ejemplo la 13 y cuando miro el archivo me aparece
seguido el 14, es decir que graba el trece sin el salto de linea.
Este es el codigo para que vena si me pueden ayudar.
----------------
Este es el codigo, cuando voy a mirar el archivo me queda el 13 sin el avance de lina :
01, 0, 0
02, 0, 0
03, 0, 0
04, 0, 0
05, 0, 0
06, 0, 0
07, 0, 0
08, 0, 0
09, 0, 0
10, 0, 0
11, 0, 0
12, 0, 0
13,56,78914, 0, 0
15, 0, 0
16, 0, 0
17, 0, 0
18, 0, 0
19, 0, 0
20, 0, 0
21, 0, 0
22, 0, 0
23, 0, 0
24, 0, 0
Cuando lo grabo me queda sin el salto de linea, es un archivo de texto donde grabo con fputs.
Primero lo leo al archivo donde cada linea 3 campos.
El primero,es la hora que varia de 00 a 23 y despues son dos valores.
Cuando lo leo uso el explode porque estan separados por comas.
Despues modifico un dato de la tabla o array por ejemplo la 13 y cuando miro el archivo me aparece
seguido el 14, es decir que graba el trece sin el salto de linea.
Este es el codigo para que vena si me pueden ayudar.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//aqui se carga el array con el archivo de 24 horas
//---------------------------------------------------------
$filas = 24;
$fh = fopen("../temp/".$master.".log", "r");
for($i=0; $i < $filas; $i++)
{
$pizza= fgets($fh);
echo "<br> $pizza en $i <br>";
$porciones = explode(",", $pizza);
$matriz[$i][0] =$porciones[0];
$matriz[$i][1] =$porciones[1];
$matriz[$i][2] =$porciones[2];
}
fclose($fh);
//Aqui altero la hora 13 y actualizo el array
//-----------------------------------
//Estos valores son de prueba
$hora=13;
$maxhora=56;
$maxdia=789;
$filas = 24;
for($i=0; $i < $filas; $i++)
{
if ($hora == $matriz[$i][0])
{
$matriz[$i][1]=$maxhora;
$matriz[$i][2]=$maxdia";
}
}
//aqui graba de nuevo la array en un archivo nuevo
//---------------------------------------
$columnas = 3;
$filas = 24;
$fh = fopen("../temp/okeyera.log", "w");
for($i=0; $i < $filas; $i++)
{
$porciones[0]=$matriz[$i][0];
$porciones[1]=$matriz[$i][1];
$porciones[2]=$matriz[$i][2];
fputs($fh,"$porciones[0],$porciones[1],$porciones[2]");
}
fclose($fh);
?>
Este es el codigo, cuando voy a mirar el archivo me queda el 13 sin el avance de lina :
01, 0, 0
02, 0, 0
03, 0, 0
04, 0, 0
05, 0, 0
06, 0, 0
07, 0, 0
08, 0, 0
09, 0, 0
10, 0, 0
11, 0, 0
12, 0, 0
13,56,78914, 0, 0
15, 0, 0
16, 0, 0
17, 0, 0
18, 0, 0
19, 0, 0
20, 0, 0
21, 0, 0
22, 0, 0
23, 0, 0
24, 0, 0
Valora esta pregunta


0