PHP - Ayúdenme con este código (FILE HANDLING)

 
Vista:
Imágen de perfil de Victorio Jesús Molina Bermejo
Val: 56
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayúdenme con este código (FILE HANDLING)

Publicado por Victorio Jesús Molina Bermejo (29 intervenciones) el 10/02/2017 14:03:03
Tengo un archivo.txt con un numero 1 en su interior, y lo que quiero conseguir con este código es que se almacene el contenido del archivo en una variable, se incremente en 1 y se escriba en el archivo este nuevo valor. A continuación quiero que se lea de nuevo caracter a caracter su contenido hasta el end of file, y que se imprima.

CÓDIGO:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
	$file = file("archivo.txt");
	$file[0] = $file[0]+1;
 
	fwrite(fopen("archivo.txt","w"),$file[0]);
	fclose(fopen("archivo.txt","w"));
	$arc = fopen("archivo.txt", "r");
	$inf = "";
	while(true !== feof($arc)){
	$inf = $inf.fgetc($arc);
	}
	fwrite($arc,$inf);
    fclose($arc);
    print($inf);
?>

ERROR:

Notice: Undefined offset: 0 in C:\servidor\htdocs\ejemplo\index.php on line 4
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 Alejandro
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayúdenme con este código (FILE HANDLING)

Publicado por Alejandro (157 intervenciones) el 11/02/2017 00:20:35
Hola Victorio, no esto seguro si es lo que buscas, pero puedes probar con este 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
27
28
29
30
31
32
33
34
<?php
$filename = 'archivo.txt';
 
if (file_exists($filename)) {
 
    $file = file($filename);
 
    if (count($file) > 0) {
        // escribo en el archivo
        $resource = fopen($filename, 'w');
        fwrite($resource, $file[0]+1);
        fclose($resource);
 
        // leeo linea a linea el fichero hasta alcanzar EOF
        $resource = fopen($filename, 'r');
        $info = [];
        while(false != ($c = fgets($resource))){
            array_push($info, $c);
        }
        fclose($resource);
 
        echo "<pre>";
        var_dump($info);
        echo "</pre>";
 
    } else {
        // Si el archivo esta vacio escribo un 1
        $resource = fopen($filename, 'w');
        fwrite($resource, 1);
        fclose($resource);
    }
} else {
    echo 'El archivo '.$filename.' no existe';
}

Recuerda que al utilizar el modo w en la función fopen estas sobrescribiendo lo que el fichero contiene, si lo que quieres es agregar contenido (sin eliminar el anterior) debes utilizar el modo de apertura a.

Comentanos si te sirvio. Un Saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar