Ficheros en PHP
Vamos a poder como podemos leer y escribir en un fichero de texto mediante php. Esto suele ser muy útil ya que hay ocasiones en las que queremos cargar datos en una base de datos a partir de un fichero o queremos exportar estos.
En el tratamiento de ficheros vamos a utilizar cuatro funciones básicas:
- manejador fopen(fichero, modo): Nos devuelve un manejador del fichero y tiene dosparámetros el fichero y el modo de apertura. El fichero indica el nombre del fichero. El modo el modo en el que vamos a abrir nuestro fichero:
r modo de solo lectura. Abrimos el fichero y el cursos se coloca al principio del mismo, solo se permite leer hasta el final del fichero.
r+ modo lectura y escritura). Abrimos el fichero y el cursos se coloca al principio del mismo, se permite leer y escribir hasta el final del fichero.
w (modo sólo escritura), el fichero se crea si no existe y se borra si ya existe. Se sitúa el cursos al principio y solo se permite escribir.
w+ (modo escritura lectura, el fichero se crea si no existe y se borra si ya existe. Se sitúa el cursos al principio y se permite leer y escribir.
a (modo añadir ), el fichero se crea si no existe y añade contenido si ya existe. Se sitúa el cursos al final y solo se permite escribir.
a+ (modo añadir/lectura, el fichero se crea si no existe y se borra si ya existe. Se sitúa el cursos al final y se permite leer y escribir.
- fclose (manejador fichero): Nos permite cerrar el manejador del fichero abierto anteriormente.
- fputs (manejador, texto): Nos permite escribir o añadir un texto a un fichero.
- string fgets (manejador[, tamaño]): Nos permite leer el contenido de un fichero con un tamaño de línea y nos lo devuelve.
- feof (manejador): Nos indica si hemos llegado al final del fichero.
Ejemplo:
escribirfichero.php
<?php # Abrimos el fichero en modo de escritura $manejador = fopen("prueba.txt","w"); #Escribimos una linea fputs($manejador,"Primera linea\n"); #Escribimos otra linea fputs($manejador,"Segunda linea\n"); #Cerramos el fichero fclose($manejador); ?>
Para poder ejecutar el anterior ejemplo tenemos que tener permiso de escritura con el usuario que lo ejecutemos. Si lo ejecutamos varias veces sólo se van a borrar y se va a crear dos líneas ya que estamos en modo escritura. Se puede hacer pruebas cambiando de modos.
leerfichero.php
<?php $manejador = fopen("prueba.txt", "r") or exit("No se ha podido abrir el fichero."); while(!feof($manejador)) { echo fgets($manejador). "<br />"; } fclose($manejador); ?>
En el anterior ejemplo leemos el fichero que prueba.txt que habíamos creado con el ejemplo anterior y lo sacamos por pantalla.
Los anteriores ejemplos se pueden ejecutar desde la línea de comandos con el intérprete php:
php leerfichero.php