> Manuales > Gestión de archivos en PHP

Explicamos las funciones básicas para la gestión de archivos con PHP, para el acceso al sistema de archivos y la lectura y escritura de ficheros de texto.

Gestión de archivos por PHP

El tratamiento de archivos resulta ser una práctica muy común en cualquier programa informático. Por supuesto, la web no resulta una excepción y muy a menudo nos vemos en la necesidad de procesar un texto para cambiarle el formato, buscar una cadena en su interior o cualquier otro tipo de operación.

PHP propone un sinfín de funciones para la gestión de archivos que van desde las más elementales de apertura, lectura y cierre a otras más rebuscadas como el cálculo de espacio en el disco duro, tamaño del archivo, gestión de derechos de acceso...

En este artículo pretendemos mostraros cuáles son las funciones más esenciales para el tratamiento de archivos para posteriormente ver diversos ejemplos que os pueden resultar útiles:

Funciones de gestión de archivos

Veamos una lista de funciónes junto con su breve descripción y una muestra de la sintaxis usada para invocarlas.

Por supuesto, todas las funciones de acceso al sistema de archivos que ofrece PHP nos permiten acceder a las carpetas y ficheros alojados en el servidor web donde está la página. Además, muchas de las funciones permiten abrir URLs de páginas alojadas en otros sitios web, aunque en ese caso solamente se permitirá la lectura del contenido y no la escritura pues no tendremos permiso. Si nuestro objetivo es acceder al sistema de archivos del ordenador del usuario, PHP no es la solución. Javascript y el navegador habilitan otro tipo de API de la que no hablaremos en este manual pero que puedes encontrar información en DesarrolloWeb.

Función copy: Copia un archivo

copy($origen, $destino)

Función rename: Cambia el nombre del archivo de $antes a $despues

rename($antes, $despues)

Función unlink: Borra el archivo

unlink($archivo)

Funciones para la lectura de archivos

Ahora vamos a ver funciones para la lectura de archivos de texto.

Función fopen: Abre un archivo y le asigna un identificador id. Veremos el modo más adelante

$id = Fopen($archivo, $modo)

Función fgets: Lee una línea de un archivo hasta un numero máximo de caracteres

fgets($id, $max)

Función fwrite: Escribe una cadena dentro del archivo

fwrite($id, $cadena)

Función fseek: Avanza o retrocede el puntero del archivo un cierto numero de posiciones

fseek($id, $posiciones)

Función feof: Comprueba si el puntero que lee el archivo ha llegado al final

feof($id)

Función fpassthru: lee completamente el archivo y lo muestra

fpassthru($id)

Función fclose: Cierra el archivo abierto previamente

fclose($id)

Las operaciones más elementales, copia, borrado y cambiar el nombre, requieren únicamente el nombre y ruta (path) del archivo sobre el cual se ejerce la operación. Para operaciones más complejas, como la lectura de líneas o la escritura de texto dentro del archivo, se requiere de una previa apertura del archivo al cual le asignaremos un indentificador $id. Por supuesto, vermos ejemplos más detallados en este manual, sin ir más lejos en el siguiente capítulo dedicado a la lectura secuencial de un archivo de texto.

Una vez abierto el archivo, podremos desplazarnos a lo largo de él por medio de un puntero imaginario que avanza o retrocede por las líneas de texto y mediante el cual nos situaremos en el lugar escogido para insertar, modificar o simplemente copiar una cadena.

Modos de apertura de archivos

Existen distintos modos de apertura de ficheros que nos permiten definir las acciones que podemos realizar sobre el archivo. Aquí os mostramos los diferentes modos, junto con su sintaxis y descripción. Veréis que son de lo más variado.

Si tratamos con archivos en binario hemos de colocar una b delante del modo (ej. ba, bw+,...)

Ejemplo de uso de la función fopen para la apertura de un fichero

Para acabar este artículo vamos a mostrar un ejemplo sencillo de uso de la función fopen() que permite abrir un fichero, para lectura y otros modos como escritura.

Nuestro ejemplo será bastante sencillo, pero demostrará que además de ficheros del sistema de archivos del servidor también podemos abrir para lectura URLs que están en otros servidores. En este caso no vamos a hacer nada con el fichero abierto, sino simplemente verificar la existencia de esa URL.

El ejemplo es el siguiente:

<?php
$url = 'https://guiarte.com/valencia';
if(@fopen($url, "r")) {
  echo 'La URL existe';
} else {
  echo 'Esa URL no existe';
}

Así de simple es la verificación. De todos modos, tenemos otro artículo que profundiza más en esta práctica. Te dejamos el enlace: Verificar la existencia de una URL.

Conclusión a la introducción a la gestión de ficheros con PHP

Recordamos que esta lista no es más que una recopilacion y que muchas otras funciones relacionadas pueden sernos también útiles. Para ello os recomendamos seguir la lectura del Manual Gestión de archivos en PHP y por supuesto leer la documentación de PHP del sistema de ficheros.

Rubén Alvarez

Rubén es doctor en química y programador aficionado con experiencia en PHP.

Manual