Manejo de Ficheros
Agosto 25, 2007
En esta seccion veremos las funciones mas comunes de acceso a ficheros, ya que son de vital ayuda cuando queremos por ejemplo, recuperar o escribir datos desde contadores, libros de vicita etc…
Apertura de un archivo.
La función utilizada para abrir un archivo en PHP es fopen, y su sintaxis:
file_handler=fopen(“nombre_de_archivo”,”modo”);
Donde file_handler es el puntero que se crea sobre el archivo, nombre_de_archivo es la ruta y nombre del archivo a abrir, y modo se refiere a los diferentes modos escritura/lectura.
Los Modos son:
- r Sólo lectura. El puntero al comienzo del archivo
- r+ Lectura y escritura; apuntador al inicio del archivo
- w Sólo escritura, si no existe el archivo lo crea, si existe lo convierte en fichero de longitud cero y el apuntador se coloca en el inicio (sobreescribe el contenido, vamos)
- w+ Lectura y escritura, si existe lo trunca a tamaño cero, y se situa al inicio, si no existe lo crea
- a Modo append, sólo escritura, si no existe lo crea. Si existe, el apuntador se coloca al final del ficero (listo para escribir a continuacion del contenido)
- a+ Modo append, lectura y escritura, si no existe lo crea; apuntador al final del archivo
- b es un flag adicional a cualquiera de los anteriores que indica que vamos a operar sobre un archivo binario (en contraposicion a archivo de texto) como una imagen o un sonido. En algunos sistemas operativos como linux no existe esta diferencia asi que el indicador b será ignorado.
La función devuelve un file_handler que luego debe ser usado en todas las funciones de tipo fgets, fputs, fclose, fread, fwrite, etc.
fopen solo debe usarse para abrir un archivo cuyo contenido vamos a manipular. Si unicamente queremos recuperar su contenido (y por ejemplo mostrarlo en pantalla), hay otras funciones mas adecuadas.
Cerrar el archivo: fclose()
para eso usamos fclose sobre el apuntador adquirido sobre el fichero previamente abierto con fopen. sintaxis fclose (file_handler);
Es muy importante cerrar el fichero al terminar de operar con el, para evitar deterioro de los datos.
ejemplo 1:
<?php
//vamos a ir construyendo un contador básico
//abrimos "contador.txt" en modo lectura
if ($file = fopen( "/otros/contador.txt", "r")) {
// tenemos un puntero ($file) sobre contador.txt
// codigo de manejo del fichero
fclose($file); // hemos terminado, cerramos el apuntador
}
?>
ejemplo 2
<?php
if ($file = fopen( "/otros/contador.txt", "w")) {
// tenemos nuevo apuntador.
// codigo de manejo del fichero
fclose($file); //hemos terminado, cerramos el archivo.
}
?>
Como nota final queda aclarar que la variable $file no es el nombre del archivo sino el apundador (fie_handler) al contenido.