El manejo de ficheros es uno de los modos más utilizados para la persistencia de datos.
Para trabajar con ficheros empleamos las funciones fopen(), fclose(), fread() y fwrite().
Para trabajar con ficheros lo primero que debemos tener es cuenta es que debemos abrir el archivo al comenzar usando fopen(), al que le pasamos como parámetros la ruta del archivo y el modo de lectura, y que devuelve un puntero al archivo. También debemos cerrarlo al finalizar usando fclose(), que recibe como argumento el puntero al archivo a cerrar.
<?php
$file = fopen("ruta/del/fichero.txt", "modo"); // Abrimos el archivo
// Operaciones con el archivo
fclose($file); // Cerramos el archivo
?>Los distintos modos de apertura son:
Las operaciones que podemos realizar con un archivo son, básicamente, de lectura y de escritura.
Si queremos leer, debemos emplear el método fread(), que necesita como parámetros un puntero al archivo a leer y el numero de bytes a leer.
<?php
$file = fopen("ruta/al/archivo.txt", "r";
$textoDelFichero = fread($file, bytesALeer);
fclose($file);
?>Si queremos escribir el un archivo, empleamos la función fwrite(), a la que le pasamos como parámetros un puntero al archivo a escribir y el texto a insertar.
<?php
$file = fopen("ruta/al/archivo.txt", "w";
fwrite($file, "texto a insertar");
fclose($file);
?>Por ultimo, para añadir contenido al archivo el proceso es exactamente el mismo que para escribir, pero abriendo el fichero en modo “a”.
En este ejemplo leemos un archivo llamado datos.txt y mostramos su contenido en pantalla.
<?php
$path= "datos.txt";
$file = fopen($path, "r");
$fileSize = filesize($path);
$textoFichero = fread($file, $fileSize);
echo $textoFichero;
fclose($file);
?>En este escribimos los datos de un usuario, separados por punto y coma (;), en un archivo llamado datos.txt:
<?php
$path = "datos.txt";
$file = fopen($path, "w");
$username = "maria74";
$nombre = "Maria";
$telefono = 987654321;
$provincia = "Pontevedra";
$texto = $username . ";" . $nombre . ";" . $telefono . ";" . $provincia . ";";
fwrite($file, $texto);
fclose($file);
?>El ejemplo siguiente es igual al anterior, con la diferencia de que el contenido es añadido al final del archivo:
<?php
$path = "datos.txt";
$file = fopen($path, "a");
$username = "maria74";
$nombre = "Maria";
$telefono = 987654321;
$provincia = "Pontevedra";
$texto = $username . ";" . $nombre . ";" . $telefono . ";" . $provincia . ";";
fwrite($file, $texto);
fclose($file);
?>