Manejando archivos con php

En cualquier proyecto web construido en php llega el momento en el que enfrentarse al manejo de archivos, desde copiar un archivo o moverlo a otra ubicación, subir archivos desde la web o leer el contenido de un determinado archivo.

El lenguaje php tiene todas las funciones necesarias para gestionar los archivos. De estas funciones las más básicas que se deben conocer se presentan a continuación:

  • copy: copia un archivo de una ubicación a otra. Su sintaxis es copy($origen,$destino). Ambos parámetros, $origen y $destino, son variables tipo string que contienen el nombre (y path) de ubicación del archivo a copiar y la ruta de destino donde se copiará.
  • rename: esta función sirve para cambiar el nombre del archivo, la sintaxis es rename($nombre_anterior,$nombre_posterior), ambos parámetros son tipo string y en ellos se debe especificar el nombre (y path) del archivo.
  • unlink: la sintaxis es unlink($archivo). Esta función elimina el archivo especificado en el parámetro de la función.

En las tres funciones anteriores, si no se especifica el path y solo se da el nombre del archivo, php interpretará que el archivo se encuentra en el mismo directorio que el archivo que incluye el script desde el que se ejecuta la función.

PHP también cuenta con las funciones necesarias para leer/escribir archivos. Las funciones de lectura/escritura de archivos más importantes son:

  • fopen: esta función abre el archivo especificado y le asigna un identificador. La sintaxis es $id = fopen($archivo,$modo_apertura). Hay diferentes modos de apertura (solo lectura, lectura y escritura, etc); veremos más adelante los diferentes modos de apertura.
  • fgets: Lee una linea del archivo al que se hace referencia mediante el identificador obtenido con fopen. La sintaxis es fgets($id,$max) donde $id es el identificador obtenido previamente con la función fopen y $max es el número máximo de caracteres a leer; la lectura termina si se alcanza $max, si se llega al final de una línea o si se llega al final del archivo.
  • fread: Lee el contenido del archivo previamente abierto por fopen y no se detiene en los saltos de línea. La sintaxis es fread($id,$max) donde $id es el identificador otorgado por fopen y $max es la longitud máxima a leer. Tanto fgets como fread leen a partir de la posición actual del puntero. fread termina la lectura si se alcanza $max o si se llega al final del archivo.
  • fwrite: Escribe una cadena dentro de un archivo. La sintaxis es fwrite($id,$cadena). $id es el identificador del archivo obtenido previamente con fopen y $cadena es la cadena a escribir. La cadena es insertada en la posición actual del puntero.
  • fseek: Hace avanzar el puntero del archivo el número de posiciones especificado (si es negativo, en lugar de avanzar, el puntero retrocede). La sintaxis es fseek($id,$posiciones).
  • feof: Esta función se usa para comprobar si se ha llegado al final del archivo. La sintaxis es feof($id).
  • fpassthru: Realiza una lectura completa del archivo desde la posición actual del puntero y devuelve su contenido. La sintaxis es fpassthru($id).
  • rewind: devuelve al puntero de archivo desde su posición actual al inicio.
  • fclose: Esta función cierra el archivo especificado y su sintaxis es fclose($id).

Cuando se realiza un proceso de lectura/escritura de un archivo, la secuencia debe ser:

<?php 
  $id = fopen($archivo,$modo_apertura); 
  //trabajo de lectura/escritura con el archivo 
  fclose($id); 
?>

Lo que quiero decir es que si abrimos un archivo, es importante cerrarlo cuando terminemos de trabajar con él para liberar la memoria usada.

Una vez abierto un archivo, nos podemos desplazar a lo largo del mismo hasta la posición deseada para insertar, modificar o copiar una cadena.

Los modos de apertura definen las acciones que se pueden realizar con el archivo abierto. Los principales modos de apertura de archivos en php son:

  • r: Modo de solo lectura.
  • r+: modo lectura y escritura
  • w: modo de solo escritura
  • w+: con este valor se puede leer y escribir con la característica de que se suprime el contenido anterior al escribir y, si el archivo no existe, se crea.
  • a: modo de solo escritura en el que el archivo se crea si no existe y, además, el puntero es colocado automáticamente al final del archivo.
  • a+: lectura y escritura, el archivo es creado en caso de que no exista y el archivo se abre colocando el puntero al final del archivo.

Cuando se especifica el modo de apertura podemos colocar una 'b' delante del modo si queremos tratar los archivos en modo binario, por ejemplo, 'br', 'br+', etc.

Si quieres profundizar en la gestión de archivos con php visita la referencia php para manejo de archivos.



Comentarios (1)

Community Builder Avatar
primiti
(26.11.2011 (22:06:30))

Smileys

:confused::cool::cry::laugh::lol::normal::blush::rolleyes::sad::shocked::sick::sleeping::smile::surprised::tongue::unsure::whistle::wink: