Grabar datos en ficheros con PHP

Aunque, no se suele trabajar con ficheros, sino con bases de datos, comentare y explicare un ejemplo para grabar datos sobre ficheros.

Lo primero será crear un formulario, en este ejemplo, vamos crear un formulario, que va a contener un campo a rellenar:

formulario-usuarios.php

Como vemos es un simple formulario, con un campo llamado usuario, y este formulario lo enviamos a un archivo, que va a ser el que va procesar tal formulario.


<p>Grabar nuevos usuarios:</p>
<form id="form1" name="form1" method="post" action="graba-en-fichero.php">
<label>nombre usuairo
<input name="usuario" type="text" id="usuario" size="100" maxlength="100" />
</label>
<p>
<label>
<input type="submit" name="Submit" value="Enviar" />
</label>
</p>
</form>

Veamos cómo se procesa tal formulario, y como se guardan los datos en un fichero.

graba-en-fichero.php


<?php

$u = $_POST['usuario']; //Recibimos el dato que hemos enviado en el formulario

$u = $u . "\r\n";

//Esto lo hacemos, para que en cuando vayamos insertando los datos, los vayamos insertando con un retorno de carro

$file="usuarios.txt"; //el fichero en cuestión donde vamos a guardar los datos.
$fd = fopen($file, "a") or die("No se puede abrir el fichero"); //abrimos el fichero/flujo, solo en modo escritura (esto lo hemos indicado con una a)
$x=fputs($fd,$u); //Escribimos el fichero
fclose($fd); //cerramos el flujo.

header("location: formulario-usuarios.php"); //redirigimos la pagina a la de formulario-usuarios.php

?>

Una vez que hemos visto, que los datos han sido insertados, queremos ver, si realmente han sido insertado y leerlos, para ellos hemos creado el siguiente archivo:

lectura-fichero.php


<?php
$file="usuarios.txt"; // fichero en cuestión
$lineas = file($file); //Digamos que la función file, nos permite guardar el contenido del fichero por linea (al menos en este caso)
foreach($lineas as $linea) // recorremos linea por linea, y imprimimos su contenido
print "$linea<br/>";
?>